PHP-使用按钮删除数据
我试图创建一个HTML表,列出数据库表中的所有行。然后,在每一行旁边我想有一个按钮,以便用户可以删除该条目。我已经创建了表,但是我无法让按钮工作 我一直在四处搜索,我找到了这篇文章,但我无法让它发挥作用。我以前从未使用过ajax,因此可能无法正确理解代码 代码如下: 浏览表格中的所有数据,并为每个条目创建一个按钮PHP-使用按钮删除数据,php,jquery,ajax,button,Php,Jquery,Ajax,Button,我试图创建一个HTML表,列出数据库表中的所有行。然后,在每一行旁边我想有一个按钮,以便用户可以删除该条目。我已经创建了表,但是我无法让按钮工作 我一直在四处搜索,我找到了这篇文章,但我无法让它发挥作用。我以前从未使用过ajax,因此可能无法正确理解代码 代码如下: 浏览表格中的所有数据,并为每个条目创建一个按钮 <?php for ($x = 0; $x < sizeof($data); $x++) { ?> <input type="submit" clas
<?php
for ($x = 0; $x < sizeof($data); $x++) {
?>
<input type="submit" class="tableButton" name="<?php echo $x ?>" value="<?php echo $x ?>">
<?php
}
?>
ajax.php
$('.tableButton').click(function () {
var clickBtnValue = $(this).val();
var ajaxurl = 'ajax.php',
data = { 'action': clickBtnValue };
$.post(ajaxurl, data, function (response) {
});
});
<?php
/* AJAX check */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$delete_id = $_POST["id"];
if( is_numeric( $delete_id ) ){
/*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
/* $affected_rows = effected_rows() */
if( $affected > 0 )
{
echo json_encode( array("status" => true ) );die;
}
}
echo json_encode( array("status" => false ) );die;
}
die("Get out of here!");
?>
获取所按下按钮的值,并对其进行操作
<?php
if (isset($_POST['action'])) {
$data = $_POST['action'];
echo $data;
}
?>
$(document).ready(function(){
$(".delete_row").click(function(e){
e.preventDefault();
var deleteId = $(this).attr("data-id");//unique id of the raw to be deleted
var request = $.ajax({
url: "ajax.php",
type: "POST",
data: { id : deleteId },
dataType: "json"
});
request.done(function( msg ) {
if( msg.status )
alert("Deleted successfully!");
else
alert("Something gone wrong!!");
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});
});
或者如果有人知道更好的方法,请告诉我
编辑
<?php
if (isset($_POST['action'])) {
$data = $_POST['action'];
echo $data;
}
?>
$(document).ready(function(){
$(".delete_row").click(function(e){
e.preventDefault();
var deleteId = $(this).attr("data-id");//unique id of the raw to be deleted
var request = $.ajax({
url: "ajax.php",
type: "POST",
data: { id : deleteId },
dataType: "json"
});
request.done(function( msg ) {
if( msg.status )
alert("Deleted successfully!");
else
alert("Something gone wrong!!");
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});
});
在做了更多的搜索之后,我发现了为什么这不能达到我的预期效果。正如我所怀疑的,因为我以前从未使用过AJAX,所以我不知道echo不会直接打印到屏幕上。我只是把echo改成了delete查询,并对其进行了测试,结果证明它是有效的。。。所以代码很好,但我想我应该找个时间学习AJAX。谢谢你的回复
我也知道sql注入在这里是可能的,这只是一个快速的模型,谢谢。从我们的角度来看,很难帮助您 您应该进行一些调试,如:
让我听听你得到了什么。从我们的观点来看,很难帮助你 您应该进行一些调试,如:
让我听听你得到了什么。从我们的观点来看,很难帮助你 您应该进行一些调试,如:
让我听听你得到了什么。从我们的观点来看,很难帮助你 您应该进行一些调试,如:
让我听听你得到了什么。好的。首先,您需要创建具有行id的按钮。您可以使用mySQL和PHP循环来完成。按以下格式创建它
<input type="submit" name="test" data-id="23" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="24" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="25" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="26" value="Remove" class="delete_row" />
ajax.php
$('.tableButton').click(function () {
var clickBtnValue = $(this).val();
var ajaxurl = 'ajax.php',
data = { 'action': clickBtnValue };
$.post(ajaxurl, data, function (response) {
});
});
<?php
/* AJAX check */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$delete_id = $_POST["id"];
if( is_numeric( $delete_id ) ){
/*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
/* $affected_rows = effected_rows() */
if( $affected > 0 )
{
echo json_encode( array("status" => true ) );die;
}
}
echo json_encode( array("status" => false ) );die;
}
die("Get out of here!");
?>
我希望这能帮助你:)好的。首先,您需要创建具有行id的按钮。您可以使用mySQL和PHP循环来完成。按以下格式创建它
<input type="submit" name="test" data-id="23" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="24" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="25" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="26" value="Remove" class="delete_row" />
ajax.php
$('.tableButton').click(function () {
var clickBtnValue = $(this).val();
var ajaxurl = 'ajax.php',
data = { 'action': clickBtnValue };
$.post(ajaxurl, data, function (response) {
});
});
<?php
/* AJAX check */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$delete_id = $_POST["id"];
if( is_numeric( $delete_id ) ){
/*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
/* $affected_rows = effected_rows() */
if( $affected > 0 )
{
echo json_encode( array("status" => true ) );die;
}
}
echo json_encode( array("status" => false ) );die;
}
die("Get out of here!");
?>
我希望这能帮助你:)好的。首先,您需要创建具有行id的按钮。您可以使用mySQL和PHP循环来完成。按以下格式创建它
<input type="submit" name="test" data-id="23" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="24" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="25" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="26" value="Remove" class="delete_row" />
ajax.php
$('.tableButton').click(function () {
var clickBtnValue = $(this).val();
var ajaxurl = 'ajax.php',
data = { 'action': clickBtnValue };
$.post(ajaxurl, data, function (response) {
});
});
<?php
/* AJAX check */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$delete_id = $_POST["id"];
if( is_numeric( $delete_id ) ){
/*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
/* $affected_rows = effected_rows() */
if( $affected > 0 )
{
echo json_encode( array("status" => true ) );die;
}
}
echo json_encode( array("status" => false ) );die;
}
die("Get out of here!");
?>
我希望这能帮助你:)好的。首先,您需要创建具有行id的按钮。您可以使用mySQL和PHP循环来完成。按以下格式创建它
<input type="submit" name="test" data-id="23" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="24" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="25" value="Remove" class="delete_row" />
<input type="submit" name="test" data-id="26" value="Remove" class="delete_row" />
ajax.php
$('.tableButton').click(function () {
var clickBtnValue = $(this).val();
var ajaxurl = 'ajax.php',
data = { 'action': clickBtnValue };
$.post(ajaxurl, data, function (response) {
});
});
<?php
/* AJAX check */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$delete_id = $_POST["id"];
if( is_numeric( $delete_id ) ){
/*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
/* $affected_rows = effected_rows() */
if( $affected > 0 )
{
echo json_encode( array("status" => true ) );die;
}
}
echo json_encode( array("status" => false ) );die;
}
die("Get out of here!");
?>
我希望这能对你有所帮助:)你可以用这种方法试试。我想这会对你有帮助 Html文件
试验
$('.tableButton').live('单击',函数()){
var id=$(this.val();
$.ajax({
url:'ajax.php'
,数据:{id:id}
,类型:'post'
,成功:函数(数据){
如果(数据==“成功”){
$('#'+id).remove();
}
}
});
});
你可以这样试试。我想这会对你有帮助
Html文件
试验
$('.tableButton').live('单击',函数()){
var id=$(this.val();
$.ajax({
url:'ajax.php'
,数据:{id:id}
,类型:'post'
,成功:函数(数据){
如果(数据==“成功”){
$('#'+id).remove();
}
}
});
});
你可以这样试试。我想这会对你有帮助
Html文件
试验
$('.tableButton').live('单击',函数()){
var id=$(this.val();
$.ajax({
url:'ajax.php'
,数据:{id:id}
,类型:'post'
,成功:函数(数据){
如果(数据==“成功”){
$('#'+id).remove();
}
}
});
});
你可以这样试试。我想这会对你有帮助
Html文件
试验
$('.tableButton').live('单击',函数()){
var id=$(this.val();
$.ajax({
url:'ajax.php'
,数据:{id:id}
,类型:'post'
,成功:函数(数据){
如果(数据==“成功”){
$('#'+id).remove();
}
}
});
});
这是一个很好的SQL注入漏洞。@André:值得称赞的是:至少OP知道isset
。。。对于OP:如果用户将按钮的值更改为“%”,在查询中使用该值会给出:DELETE FROM myTable WHERE id=“%”
,这不是您所说的安全,是吗?这里有一个很好的示例,演示了一个防注入语句,您几乎可以将其复制/粘贴到PHP代码中,而不是echo$data
,并调整查询。您给出的代码不应该显示任何内容,因为您对post请求的response
不做任何操作,这是一个很好的SQL注入漏洞。@André:值得称赞的地方:至少OP知道isset
。。。对于OP:如果用户将按钮的值更改为“%”,则在查询中使用该值将给出:DELETE FROM myTable WHERE