我已经成功创建了几个AJAX调用,但不知何故,以下简单的AJAX测试不起作用。我有两个变量,用表格的输入设置(这是有效的)。我们将这些变量称为input_1和input_2。我想将这些输入传递给php文件,php文件处理它并返回一些东西。最后,响应在JS变量中设置。现在我将响应放在DOM元素中,以查看AJAX调用是否成功。不幸的是,它不是。
我的代码:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var input_1 = 'abc'; // this is input of the form
var input_2 = 'def'; // this in input of the form
function generate_content(x,y)
{
$.ajax({
url: "create_response.php",
type:"get",
data:{firstvar:x, secondvar:y}
}).success(function(response){
document.getElementById("temp-id").innerHTML=response;
});
}
generate_content(input_1, input_2);
</script>
<p id="temp-id"></p>
</body>
</html>
和php文件create_response.php:
<?php
$var1=$_GET['firstvar'];
$var2=$_GET['secondvar'];
echo $var1;
?>
所以,我希望input_1(=&#39; abc&#39;)显示在名为&#39; temp-id&#39;的p-tag中。因为
但事实并非如此。
有任何想法/建议吗?
答案 0 :(得分:1)
AFAIK $.deferred
上没有success
方法,也许您应该尝试.then
或.done
function generate_content(x,y) {
$.ajax({
url: "create_response.php",
type:"get",
data:{firstvar:x, secondvar:y}
}).then(function(response){
document.getElementById("temp-id").innerHTML=response;
});
}
答案 1 :(得分:0)
您可以在ajax调用中的设置对象上将您的函数添加为success
属性,而不是像当前一样使用它。
$.ajax({
url: "create_response.php",
type:"get",
data:{firstvar:x, secondvar:y},
success: function(response){
document.getElementById("temp-id").innerHTML=response;
}
});