Как обновить таблицу, удалить записи из таблицы асинхронно, используя jquery, ajax, php и mysql?
Итак, у меня есть страница, которая создает таблицу на основе таблицы MySQL, используя php:
tables.php
$page .='<form method="POST" action="processing.php">';
$page .= "<table> \n";
$page .= "<tr>\n";
$page .= "<th>ID</th> \n <th>First Name</th> \n <th>Last Name</th> \n <th>PhoneNumber</th> \n <th>Email</th> \n";
//Loops through each contact, displaying information in a table according to login status
$sql2="SELECT cID, firstName, lastName, phoneNum, email FROM Contact WHERE oID=".$_GET['orgID'];
$result2=mysql_query($sql2, $connection) or die($sql1);
while($row2 = mysql_fetch_object($result2))
{
$page .= "<tr>\n";
$page .= "<td>".$row2->cID."</td>\n";
$page .= "<td>".$row2->firstName."</td>\n";
$page .= "<td>".$row2->lastName."</td>\n";
$page .= "<td>".$row2->phoneNum."</td>\n";
$page .= "<td>".$row2->email."</td>\n";
//Will only display these buttons if logged in
$page .= '<td><input type="checkbox" name="checkedItem[]" value="'.$row2->cID.'"></input></td>'."\n";
$page .= "<td>".makeLink("addEditContact.php?cID=".$row2->cID, "Edit")."</td>\n";
$page .="</tr>";
}
$page .= "</table>";
//Two buttons sending to processing.php to decide what to do with selected values from there
$page .= '<input name="addToContacts" type="submit" value="Add Selected Contacts To Contact List" />'."\n" ;
$page .= '<input name="deleteContacts" type="submit" value="Delete Selected Contacts" />'."\n";
$page .= "</form>\n";
mysql_close($connection);
Таким образом, основываясь на флажках, я могу выбрать добавление контактов в другую таблицу или удалить контакты из этой таблицы, сначала отправив информацию этой формы на страницу processing.php, которая решает, какая кнопка была нажата, и перенаправляет на соответствующий скрипт php.:
processing.php:
if(!empty($_POST['checkedItem']))
{
//Because addToContacts and deleteContacts take in GET instead of POST for convinience, it needs to take all of checkItems and implode it
$var=$_POST['checkedItem'];
ksort($var);
$joinedString= implode(',',$var);
//Since there are two buttons in orgDetail, it checks for which was pushed and sends it to the correct page
if(!empty($_POST['addToContacts']))
{
header('Location: addToContacts.php?cID='.$joinedString);
}
else if($_POST['deleteContacts'])
{
header('Location: deleteContacts.php?cID='.$joinedString);
}
}
else
{
//Error for not selecting any items
$page .= makeP("You have not checked off any items. Please click ".makeLink( $currentPage, "here")." to return to previous page");
}
А так как меня сейчас интересует только случай удаления контакта. Вот deleteContacts.php
$explodedString=explode(',',$_GET['cID']);
foreach($explodedString as $eString)
{
$sql1="DELETE FROM Contact WHERE cID='".$eString."'";
mysql_query($sql1, $connection) or die($sql1);
}
header('Location: '. $currentPage);
Так вот, где это становится сложным. Это прекрасно работает, когда я хочу, чтобы страница работала синхронно. Он скачет вокруг PHP-скриптов, и все хорошо. Что делать, если я хочу удалить непосредственно из tables.php, используя jquery. Итак, я имею в виду, что он выполнит запрос mysql, чтобы удалить записи из фактической базы данных, а также после этого обновит табличное представление в tables.php, чтобы отразить это изменение; все сделано асинхронно?
(Пожалуйста, игнорируйте тот факт, что все sql-запросы не являются экранированными строками, я понимаю это, и мне придется это исправить позже)
Заранее спасибо.
1 ответ
Если вам нужно поддерживать таблицу без JavaScript, то сначала получите это
Единственный способ поддерживать таблицу в актуальном состоянии без включенного Javascript - это обновлять страницу и перерисовывать таблицу при каждой загрузке.