将PHP函数更改为Javascript/AAJAX验证
Changing PHP function to Javascript/AJAX validation
我想在PHP中使用AJAX/Javascript来执行以下功能,而不是让PHP自己完成所有功能。我创建了一个函数,从MySQL数据库中删除一个项目。如果用户想通过选择"是"或"否"将其删除,它会向用户提供验证。
然而,我该如何更改它,使其执行相同的功能,但验证显示为弹出框,当按下"是"或"确定"时,它会从数据库中删除项目,并重新加载页面以显示它已被删除。
我已经提供了与该函数相关的PHP代码,但我想特别将其更改为使用AJAX/Javascript,以及根据PHP。
<?php
// Delete Item Question to Admin, and Delete Product if they choose
if (isset($_GET['deleteid'])) {
echo 'Do you really want to delete product with ID of ' . $_GET['deleteid'] . '? <a href="inventory_list.php?yesdelete=' . $_GET['deleteid'] . '">Yes</a> | <a href="inventory_list.php">No</a>';
exit();
}
if (isset($_GET['yesdelete'])) {
// remove item from system and delete its picture
// delete from database
$id_to_delete = $_GET['yesdelete'];
$sql = mysqli_query($link,"DELETE FROM products WHERE id='$id_to_delete' LIMIT 1") or die (mysql_error());
// unlink the image from server
// Remove The Pic -------------------------------------------
$pictodelete = ("../inventory_images/$id_to_delete.jpg");
if (file_exists($pictodelete)) {
unlink($pictodelete);
}
header("location: inventory_list.php");
exit();
}
?>
<?php
// This block grabs the whole list for viewing
$product_list = "";
$sql = mysqli_query($link,"SELECT * FROM products ORDER BY date_added DESC");
$productCount = mysqli_num_rows($sql); // count the output amount
if ($productCount > 0) {
while($row = mysqli_fetch_array($sql)){
$id = $row["id"];
$product_name = $row["product_name"];
$price = $row["price"];
$stock = $row["stock"];
$date_added = strftime("%b %d, %Y", strtotime($row["date_added"]));
$product_list .= "Product ID: $id - <strong>$product_name</strong> - £$price - Stock: $stock - <em>Added $date_added</em> <a href='inventory_edit.php?pid=$id'>edit</a> • <a href='inventory_list.php?deleteid=$id'>delete</a><br />";
}
} else {
$product_list = "You have no products listed in your store yet";
}
?>
您的JS文件
$(document).ready(function() {
$('.delete').click(function() {
event.preventDefault();
var deleteId = $(this).parent().attr('id').val();
$.get('path/to/you/phpfile', {deleteId: deleteid}, function(data) {
var confirm = confirm(data);
if (confirm==true) {
$.get('path/to/you/phpfile', {yesdelete: 1});
}
});
});
});
在您的PHP文件中,您必须删除header('Location: ...')
和获取列表的块,将其封装在一个函数中,或者将其转换到另一个PHP文件中以使用我上面使用的simliarAjax命令来调用它。您必须在while循环中更改th$product_list。
Product ID: <div id="$id">$id - <strong>$product_name</strong> - £$price - Stock: $stock - <em>Added $date_added</em> <a href='inventory_edit.php?pid=$id'>edit</a> • <div class="delete">Delete</div></div><br />
jQuery获取其父母的id值。这实际上不是最好的方法,但这样的方法应该有效。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- Javascript/jQuery/AAJAX-从网站请求字符串
- PHP/AAJAX-使用PHP中的$_FILES访问javascript文件数组
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- 检查互联网和特定网站是否使用JavaScript/AAJAX
- PHP将JSON对象返回到Javascript[AAJAX CALL]不起作用
- JavaScript/jQuery/AAJAX中的嵌套模板
- Javascript/AAJAX发送多个返回
- 将这些脚本组合在一起工作,Javascript/AAJAX和PHP
- Javascript/AAJAX仅重新加载文件“;onchange”;
- 使用POST或GET的Javascript/AAJAX到PHP页面
- Javascript/AAJAX操作没有在@foreach循环(MVC C#)中的每个实例上运行
- Javascript/AAJAX错误404未找到或未定义
- 如何使用Javascript/Jquery/AAJAX登录远程网站并从登录页面读取数据
- 如何通过Javascript/AAJAX逐行显示文本文件
- 将PHP函数更改为Javascript/AAJAX验证