Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php can';在初始运行后,不要执行jquery post或ajax_Php_Jquery - Fatal编程技术网

Php can';在初始运行后,不要执行jquery post或ajax

Php can';在初始运行后,不要执行jquery post或ajax,php,jquery,Php,Jquery,在第一次成功点击后,我似乎无法使下面的代码正常工作。我尝试了$.post和ajax都没有用。最初单击删除任何项目都有效,但随后的单击不起作用 <script> $(document).ready(function(){ $('[id^="del"]').click(function(){ var valname = $(this).attr('id').split('del_'); /*$.post("delthis.php", {id: ""+valname

在第一次成功点击后,我似乎无法使下面的代码正常工作。我尝试了$.post和ajax都没有用。最初单击删除任何项目都有效,但随后的单击不起作用

<script>    
$(document).ready(function(){
$('[id^="del"]').click(function(){
    var valname = $(this).attr('id').split('del_');
    /*$.post("delthis.php", {id: ""+valname[1]+""}, function(data) {
            $("#dynamic_section").html(data);
    });*/
    $("#dynamic_section").load('delthis.php', {"id":valname[1]} );
    return false;
  });
});
</script>

<body>

<div id='static_section'>This is the static section</div>
<div id='dynamic_section' style='border: 1px solid black;'>
<?php
// db connection here
$sql = mysql_query("SELECT * from test_table ORDER BY id");
while ($row = mysql_fetch_array($sql))
{
?>
<p><a href='#' id='del_<?php echo $row['id']; ?>'>Hello <?php echo $row['id']; ?></a></p>
<?php
} 
?>
</div>

$(文档).ready(函数(){
$('[id^=“del”]')。单击(函数(){
var valname=$(this.attr('id').split('del_');
/*$.post(“delthis.php”,{id:“+valname[1]+”“},函数(数据){
$(“#动态#u节”).html(数据);
});*/
$(“#dynamic_section”).load('delthis.php',{“id”:valname[1]});
返回false;
});
});
这是静态部分

这是一个简单的delthis.php文件:

<?php
// db connection 
//$id = $_POST['id'];
$id = $_REQUEST['id'];

$sql = mysql_query("DELETE from test_table WHERE id = '$id'");

$sql = mysql_query("SELECT * from test_table ORDER BY id");
while ($row = mysql_fetch_array($sql))
   $html .= '<p><a href="#" id="del_' . $row['id'] . '">Hello ' . $row['id'] . '</a></p>';

echo $html;

?>

问题在于替换了#dynamic_部分的所有内容,因此必须“重新绑定”单击事件。试试这个

<script>    
$(document).ready(function(){
    function doPost(evt) {
        evt.preventDefault();
        var valname = $(this).attr('id').split('del_');
        $.post("delthis.php", {id: ""+valname[1]+""}, function(data) {
            $("#dynamic_section").html(data);
            $('[id^="del"]').click(doPost);
        });
    }

    $('[id^="del"]').click(doPost);
});
</script>

$(文档).ready(函数(){
功能doPost(evt){
evt.preventDefault();
var valname=$(this.attr('id').split('del_');
$.post(“delthis.php”,{id:“+valname[1]+”“},函数(数据){
$(“#动态#u节”).html(数据);
$('[id^=“del”]')。单击(doPost);
});
}
$('[id^=“del”]')。单击(doPost);
});

祝你好运

问题是您替换了#dynamic_部分的所有内容,因此必须“重新绑定”单击事件。试试这个

<script>    
$(document).ready(function(){
    function doPost(evt) {
        evt.preventDefault();
        var valname = $(this).attr('id').split('del_');
        $.post("delthis.php", {id: ""+valname[1]+""}, function(data) {
            $("#dynamic_section").html(data);
            $('[id^="del"]').click(doPost);
        });
    }

    $('[id^="del"]').click(doPost);
});
</script>

$(文档).ready(函数(){
功能doPost(evt){
evt.preventDefault();
var valname=$(this.attr('id').split('del_');
$.post(“delthis.php”,{id:“+valname[1]+”“},函数(数据){
$(“#动态#u节”).html(数据);
$('[id^=“del”]')。单击(doPost);
});
}
$('[id^=“del”]')。单击(doPost);
});

祝你好运

一旦动态_部分加载完毕,您需要为链接分配单击功能

这是我的方法

<script>    

$(document).ready(function(){
  callback();
});

function callback(){
  $('[id^="del"]').click(function(){
   var valname = $(this).attr('id').split('del_');
   $("#dynamic_section").load('delthis.php', {"id":valname[1]}, function(){ callback() });
   return false;
  });

}
</script>

$(文档).ready(函数(){
回调();
});
函数回调(){
$('[id^=“del”]')。单击(函数(){
var valname=$(this.attr('id').split('del_');
$(“#dynamic_section”).load('delthis.php',{id:valname[1]},function(){callback()});
返回false;
});
}

一旦动态部分加载完毕,您需要为链接分配单击功能

这是我的方法

<script>    

$(document).ready(function(){
  callback();
});

function callback(){
  $('[id^="del"]').click(function(){
   var valname = $(this).attr('id').split('del_');
   $("#dynamic_section").load('delthis.php', {"id":valname[1]}, function(){ callback() });
   return false;
  });

}
</script>

$(文档).ready(函数(){
回调();
});
函数回调(){
$('[id^=“del”]')。单击(函数(){
var valname=$(this.attr('id').split('del_');
$(“#dynamic_section”).load('delthis.php',{id:valname[1]},function(){callback()});
返回false;
});
}

尝试了这个方法,效果也很好:

 $('[id^="del"]').live('click', function(){
我想知道与其他解决方案相比,这种方法的优点/缺点是什么。相似的


谢谢。

尝试过这个方法,效果也很好:

 $('[id^="del"]').live('click', function(){
我想知道与其他解决方案相比,这种方法的优点/缺点是什么。相似的


谢谢。

mysql\u query(“…”)或die(mysql\u error())
delthis.php
中的两个查询上,查看您得到的fwiw,您应该使用
e.preventDefault()
而不是
returnfalse
来处理单击事件,尽管这不是问题所在。
mysql\u query(“…”)或die(mysql\u error())
delthis.php
中的两个查询中,如果要查看您得到的fwiw,您应该使用
e.preventDefault()
而不是
return false
来处理您的点击事件,尽管这不是问题所在。看起来使用“live”搜索将实现$('[id^=“del”]')。live('click',function(){谢谢,我尝试了nicowemli的解决方案,这也起了作用。看起来“live”也会重新绑定单击事件?看起来使用“live”搜索会起到作用。$('[id^=“del”]')。live('click',function(){谢谢,我尝试了nicowemli的解决方案,也起了作用。看起来“live”也会重新绑定单击事件吗?