我在我的项目中使用jquery的AJAX。今天,我在其他地方使用了所有相同的方法,但它不起作用。
我的剧本有问题吗?
<a class='btn edit_receipe_btn' id='myreceipe-52'>Edit</a>
(点击功能有效。当我在alert(instance)
行之后放var instance
时,它可以正常工作)
$(document).ready(function(){
$('.edit_receipe_btn').click(function(){
var instance = $(this).attr('id');
var dataString = 'process=userReceipeEdit&instance='+instance;
$.ajax({
type: 'POST',
url: 'ajax/ajaxs.php',
data: dataString,
cache: false,
success: function(msg) {
alert(msg);
}
});
});
});
$prcs = $_POST['process'];
if($prcs=='userReceipeEdit'){
$instance = $_POST['instance'];
return $instance;
}
问题出现在PHP中。我做错了什么?
答案 0 :(得分:3)
这是整个PHP页面吗?如果是这样,你应该回应而不是返回
答案 1 :(得分:2)
正如Jasper De Bruijn通知我的那样,问题出在我的PHP脚本中。我应该使用echo而不是return: 错误的用法:
$prcs = $_POST['process'];
if($prcs=='userReceipeEdit'){
$instance = $_POST['instance'];
return $instance;
}
正确使用:
$prcs = $_POST['process'];
if($prcs=='userReceipeEdit'){
$instance = $_POST['instance'];
echo $instance;
}
答案 2 :(得分:0)
两件事,输出错误并检查以确保实例未定义。
输出如下错误:
$('.edit_receipe_btn').click(function(){
var instance = $(this).attr('id');
var dataString = 'process=userReceipeEdit&instance='+instance;
$.ajax({
type: 'POST',
url: 'ajax/ajaxs.php',
data: dataString,
cache: false,
success: function(msg) {
alert(msg);
},
error: function(response, status, error)
{
alert(response.responseText);
alert(status);
alert(error);
}
});
});
答案 3 :(得分:0)
我认为你已经把这个POST形成了一个get,不知道为什么。尝试在JS中执行此操作:
var dataString =
{
"process" : "userReceipeEdit",
"instance" : instance
};