我有这种形式的Ajax调用:防止AJAX所谓的PHP脚本执行功能
$("#assignDesigner .save").click(function(event) {
event.preventDefault();
$.post("/cms/cms/php/update_di_user_designer_meta.php", $("#assignDesigner").serialize(), function(response) {
alert("Update " + (response ? "worked" : "failed"));
var data = {
promoted_header: $(".product-promotion .rightcol > h3").html(),
promoted_content: $(".product-promotion .rightcol > span").html(),
promoted_owner: $("#designerSelection").val()
};
$.post("/cms/cms/php/create_di_promoted_products.php", data, function(response_inner) {
$("section.product-promotion").replaceWith(response_inner);
})
})
});
我的PHP脚本是这样的:
<?php
function insertCode($param)
{
...many echos...
}
if (isset($_POST))
{
insertCode($_POST['param'])
}
?>
当通过AJAX调用的功能应采用insertCode
函数中的POST-Data。当需要或包含时,函数调用不同的$param
。
问题是,当我发送我的AJAX-Request函数执行两次。首先在评估POST代码之前。因此,所有回显的文本都会被发送回AJAX-Success-Function两次。
然后我测试了回显文本是否被发回ich我评论下半部分的测试和是的即使然后该函数的代码被回显,虽然我从来没有调用函数。
如何防止AJAX调用帮助自己调用该函数?
使用'e.preventDefault();' –
这个问题听起来像是您的JavaScript点击处理程序中的逻辑错误。添加触发'$ .post'的单击处理程序代码,我打赌会发现问题。 – Justin
我在我的点击事件处理程序中调用了'e.preventDefault()'。关于事件处理程序本身,我只是添加了它。如果有帮助,我会很高兴。 – satanik