PHP和Ajax发布onclick事件

时间:2012-09-20 16:55:44

标签: jquery ajax call

我有一个这样的脚本:

<script type="text/javascript">
function DeletePublisher(publisherid) {
jConfirm('Are you sure you want to delete this publisher?', 'Delete publisher', function(r) { if (r)

scriptitem = document.createElement('script');
scriptitem.type = 'text/javascript';
scriptitem.src = 'includes/publishers/delete-publisher.php?publisherid=' + publisherid;
scriptitem.id = 'ajax';
document.body.appendChild(scriptitem);
setTimeout('document.body.removeChild(document.getElementById("ajax"))', 500);  

$.jGrowl('Publisher deleted');
window.location.reload();
});
}
</script>

我在表格中列出了这样的行:

TD ROWS HERE...
<td class="unpaid-th"><strong><?php echo $publisher_unpaid; ?></strong></td>
                <td class="action-th">
                    <ul class="button-table-head">
                        <li><div class="button-head edit-icon"><a href="#" class="sweet-tooltip" data-text-tooltip="Edit" data-style-tooltip="tooltip-mini-slick"><span>Edit</span></a></div></li>
                        <li><div class="button-head delete-icon"><a href="#" class="sweet-tooltip" data-text-tooltip="Delete" data-style-tooltip="tooltip-mini-slick" onclick="DeletePublisher('<?php echo $publisher_id; ?>')"><span>Delete</span></a></div></li>
                    </ul>
                </td>

现在应该发生的是当我点击删除链接时 - 它应该发布/获取(无论是什么 - 因为我在监听器脚本上使用$ _REQUEST)到php脚本,它将获取发布者的ID并从DB中删除它...但问题似乎是没有ID实际发送到删除脚本,我已经尝试了一切....

它在源代码中显示很好,例如onclick =“DeletePublisher('152')”并提示警报,信息等...但似乎它没有发送ID .....或者现在可能不会打电话给听众脚本(不知道如何测试):(

任何想法在这里有什么不对(或者可能是不同的方法?)?

非常感谢!

2 个答案:

答案 0 :(得分:1)

我建议使用下面的AJAX,它使用jQuery

function DeletePublisher(publisherid) {
  jConfirm('Are you sure you want to delete this publisher?', 'Delete publisher', function(r) { if (r)
    $.ajax({
      type: "POST", //or GET
      url: 'includes/publishers/delete-publisher.php?publisherid=' + publisherid,
      data: '',
      success: function(response){
        $.jGrowl('Publisher deleted');
        window.location.reload();
      }
    });
  });
}

答案 1 :(得分:0)

我认为你要做的是JSONP调用。我认为缺少的是响应应该包含在javascript调用中。方法的名称应与回调方法相同。

但我认为你不需要继续使用JSNOP aproach,因为我看到你的脚本在同一个域上。所以尝试做一个简单的ajax调用。你可以尝试jquery。它将兼顾浏览器兼容性。