[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обновление данных после удаление
Страницы: 1, 2, 3
rusline
arbuzmaster
Цитата
Ваша задача, написать на JavaScript функцию, которая будет срабатывать по нажатию на кнопку "Удалить" В этой функции нужно собрать все данные из формы и отправить их при помощи ajax запроса на сервер к скрипту php, который произведет действия по удалению данных из таблицы, затем сформирует новый html код вашей таблицы (на основе уже новых данных) и отправит его обратно, в ту страницу из которой был подан ajax запрос, в функцию .done(success). где Вы его примете (html код) и вставите в нужный div id="id_table". Примерно так должен отработать ajax

Немного не пойму. В принципе я формирую новый html код используя данный код
success: function(data){
$("#TransTable").html(data);
}

rusline
У меня почему-то success в этой функции горит по другому, возможно в ней какая-то ошибка, обычно изначально у меня с начало выходит ошибка и затем выводит таблицу
arbuzmaster
Вроде все верно, но не нужно все запихивать в функцию filter() и вызывать ее так, как Вы вызываете! Достаточно сделать так:

<script>$(document).ready(function(){
$("#filterButtom").onclick(function(){
var filter = $("#filterButtom").val();
$.ajax({
url: "TransTable.php",
type: "POST",
data: ({filter: filter}),
success: function(data){
$("#TransTable").innerHTML(data);
}
}
);
});
});</script>

И посмотреть в отладчике Chrome F12 - Network-XHR, что происходит при нажатии на filterButtom

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
rusline
arbuzmaster
Ничего не выводит.
Вот исходник этих файлов https://www.dropbox.com/s/vsegvcs6m0annq7/T...sTable.zip?dl=0
Примерно в другом форуме написали, что
Цитата
ajax не не работает, а не используется. При удалении вы отправляете POST запрос, соответственно после страница обновляется и данные из фильтра пропадают. Вам нужно отправлять POST запрос через ajax с данными "delete: true, check: ключи из поля check[]" на transactions.php, при успешном завершении скрывать tr с удаленной записью.

Только так как не разу не изучал ajax я не пойму как это написать, ищу ответ, но пока не могу примерно найти решение
arbuzmaster
Правильно - не выходит, у Вас здесь, что находится?
var filter = $("#filterButtom").val();

<input type="submit" name="filter" id="filterButtom" value="Фильтровать">

то есть в TransTable.php просто передается слово - Фильтровать, а в TransTable.php нужно передать все параметры, с input-ов, checkbox-ов и так далее!
Вам нужно сделать вот это -
Цитата

В этой функции нужно собрать все данные из формы и отправить их при помощи ajax запроса на сервер к скрипту php

Как собрать параметры с формы и передать, можно почитать здесь например!

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
rusline
arbuzmaster
окей, завтра тогда почитаю
arbuzmaster
Попробуйте так:

$("#filter").submit(function(){
var str = $(this).serialize();
$.ajax( { type: "POST", url: "TransTable.php", data: str, success: function(data){ ..............


_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
rusline
arbuzmaster
нет не помогает. Может что-то мешает в коде?
rusline
https://github.com/rusline18/growth.git
Это весь сайт, без дополнительных изменений
rusline
arbuzmaster
У меня форма только для фильтрации, а другая для удаление. Это не как не влияет на результат отображения?
rusline
arbuzmaster
Я его немного поменял код, теперь пишет ошибку
Цитата
Parse error: syntax error, unexpected end of file in
С: \openserverultimatopenserver domains pergrowthapaneltranstable-php
on line 53

Немного изменил, так начало выводить данные в консоле xhr
Если не качать весь код, то файл TransTable добавил код с функции php
<?php 
session_start();
$idUser=$_SESSION['id'];
if (isset($_POST['filter'])) {
$dateStart = htmlspecialchars($_POST['fromDate']);
$dateEnd = htmlspecialchars($_POST['beforeDate']);
$typ = htmlspecialchars($_POST['filterTyp']);
$categ = htmlspecialchars($_POST['filterCateg']);
$account = htmlspecialchars($_POST['filterAccount']);
$organ = htmlspecialchars($_POST['filterOrganiz']);
$idTrans=htmlspecialchars($_POST['idTrans']);
require "../verification/connect.php";
$where = [];
$where[] = isset($_POST['fromDate']) ? "t.data >='$dateStart'" : "t.data >= '".date('Y-m-01')."'";
if(!empty($_POST['beforeDate'])) $where[] = "t.data <'$dateEnd'";
if(!empty($_POST['filterTyp'])) $where[]="t.typ ='$typ'";
if(!empty($_POST['filterCateg'])) $where[]="t.idCateg ='$categ'";
if(!empty($_POST['filterAccount'])) $where[]="t.idScore ='$account'";
if(!empty($_POST['filterOrganiz'])) $where[]="t.idOrg ='$organ'";
$sqlTrans="SELECT t.idTrans, t.typ, t.data, t.Sum,t.comment, t.delet, score.score, Categoria.category, subcategory.subcategory, organization.organization
FROM transactions AS t
LEFT JOIN score ON score.idScore = t.idScore
LEFT JOIN Categoria ON Categoria.idCateg = t.idCateg
LEFT JOIN subcategory ON subcategory.idSubCat = t.idSubCat
LEFT JOIN organization ON organization.idOrg = t.idOrg
WHERE
t.idUser='
$idUser' AND t.delet = '0' AND
( "
.implode(' AND ', $where)." )
ORDER BY t.data ASC"
;
$queryTrans=mysql_query($sqlTrans) or die(mysql_error());
$transactions=array();
while($rowTrans = mysql_fetch_array($queryTrans))
{
$transactions[]=$rowTrans;
}
return $transactions;

foreach ($transactions as $transact)
{
echo"<tr>";
echo"<td><input type='checkbox' data-id=".$transact['idTrans']." name='check[]'' class ='qwe' value=".$transact['idTrans']."></td>";
echo"<td>".date('d.m', strtotime($transact['data']))."</td>";
echo"<td>".$transact['typ']."</td>";
echo"<td>".$transact['score']."</td>";
echo"<td>".$transact['category']."</td>";
echo"<td>".$transact['subcategory']."</td>";
echo"<td>".$transact['organization']."</td>";
echo"<td>".$transact['Sum']."</td>";
echo"<td>".$transact['comment']."</td>";
echo"<td>Изменить</td>";
echo"</tr>";
}
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.