0

我的一个网站页面上有一个列表,其作用类似于删除按钮,但是我想知道您是否可以在用户单击它时调用 php 脚本,有点像提交按钮。

这是列表:

<li>
    <a class="actions_dropdown" href="#">&nbsp;</a>
    <ul class="actions_content">
        <li><a href="#">Delete</a></li>
        <li><a href="#">Report</a></li>
        <li><a href="#">Mark as Read</a></li>
        <li><a href="#">Mark as Unread</a></li>
        <li><a href="#">Move to Folder 1</a></li>
        <!----whole loop of folders--->
    </ul>
</li>

无论如何,当用户点击时,说删除 li 它调用了一个 php 脚本?我似乎无法解决它。

4

2 回答 2

1

Delete给你的li分配一个类

<li><a class="actions_dropdown" href="#">&nbsp;</a>
                <ul class="actions_content">
                    <li class="del"><a href="#">Delete</a></li>
                    <li><a href="#">Report</a></li>
                    <li><a href="#">Mark as Read</a></li>
                    <li><a href="#">Mark as Unread</a></li>
                    <li><a href="#">Move to Folder 1</a></li>
                    <!----whole loop of folders--->
                </ul>
               </li>

现在将单击事件处理程序附加到liwith 类del

$("li.del").click(function(e){  
var db = $(':checkbox:checked').map(function(i,n) {
    return $(n).val();
}).get(); //get converts it to an array

if(db.length == 0) { 
    db = "none"; 
}        
 $.post('/test.php',{'db[]':db},function(data){    
 console.log(data);//it should log data deleted successfully     
 });    
});

在 test.php 中

<?php

 //delete logic here
 echo json_encode("data deleted successfully");

?>

发布多个复选框值的数组

于 2012-08-12T11:45:48.223 回答
0

您可以简单地将锚点设置href到您的 PHP 页面,但与标准表单提交一样,它会导航离开当前页面或导致当前页面重新加载(取决于您的 PHP 返回的内容)。

所以可能你想发出一个 Ajax 请求。与标准表单提交不同,Ajax 不会导致当前页面重新加载,它会将响应返回给您的 JS 代码。

假设您可以将 id 添加到您的 li 或锚元素(例如,id="deleteLink"),或者以其他方式标识它,您可以绑定执行 Ajax 的单击处理程序:

$("#deleteLink").click(function(e) {
    e.preventDefault();

    $.ajax({
       url: "yourPHPpageHere.php",
       data: { paramName1 : paramValue, paramName2 : paramValue2 },
       dataType : "json"   // or "html", "xml", or "text", whatever your PHP returns
    }).done(function( response ) {
       // optionally do something with response.
    });
});

您需要传递给删除 PHP 的任何数据(可能至少是某种记录 ID)都可以在调用的data参数中设置$.ajax()

有关该$.ajax()方法的更多详细信息,请参阅jQuery doco

于 2012-08-12T11:46:09.940 回答