我试图让我的ajax / json脚本工作,我已经查看了stackoverflow,但找不到任何看起来会有所帮助的东西。基本上我所要做的就是当用户点击提交按钮时,隐藏的输入值将通过ajax发送到另一个php脚本,在那里它将被更改等等...然后通过ajax发回并显示在内部通过回应,我不知道我做错了什么。
目前我什么都没有,没有输出或任何东西。
我将尽力在下面给出的代码中尽可能彻底,感谢所有的帮助。
主页上的AJAX脚本
<script>
$(document).ready(function () {
$(".add_detail_land_down").click(function () {
var hidden_count = $('input[name=addon_detail_hidden_count]').val();
$.ajax({
type: "GET",
url: "ajax_script.php",
data: {
hidden_count: hidden_count
},
dataType: "json",
statusCode: {
success: function (data) {
$("#total_hidden").html(data.total_hidden);
}
}
});
})
});
$(".add_detail_land_down").click();
</script>
主页上的表单头(我想也可以添加它,只是加入)
<form action="" method="post">
主页上的隐藏输入
<input type="hidden" name="addon_detail_hidden_count" id="addon_detail_hidden_count" class="addon_detail_hidden_count" value="1" />
用于在主页
上启动ajax进程的提交按钮<input name="add_detail_land_down" type="submit" class="add_detail_land_down" value="add_detail_down"/>
ajax_script.php中的代码
<?php
$hidden_count = $_GET["hidden_count"];
$hidden_count = $hidden_count + 1;
include 'connect_to_mysql.php';
echo json_encode(array("total_hidden" => $hidden_count ));
?>
感谢您提供的任何帮助
答案 0 :(得分:3)
为什么要将success callback
嵌套在 statusCode
原来是
dataType: "json",
success: function (data) {
$("#total_hidden").html(data.total_hidden);
}
或
使用状态代码 200 代替成功
dataType: "json",
statusCode: {
200 : function (data) {
$("#total_hidden").html(data.total_hidden);
}
}
答案 1 :(得分:1)
在提到的所有其他问题中:statusCode/success
语法问题,以及document.ready
的点击trigegr outlsde,您还需要阻止浏览器默认提交表单。
目前,当您提交正常的浏览器行为时,您的网页可能会刷新。
在点击处理程序中,您需要通过返回false
或使用preventDefault()
$(".add_detail_land_down").click(function (event) {
/* use either of these */
/* before your ajax code */
event.preventDefault();
/* or after your ajax code*/
return false;
})
答案 2 :(得分:0)
statusCode是数字,对于您的情况,200
应该从success
更改为200
,如下所示:
statusCode: {
200: function (data) {
$("#total_hidden").html(data.total_hidden);
}
}
答案 3 :(得分:0)
你的成功回调应该像这样指定(如果你只关心200):
success: function (data) {
$("#total_hidden").html(data.total_hidden);
}
此外,您尝试在元素上执行click()
的位置可能实际上在文档加载之前发生,因此在onclick处理程序准备好之前执行。如果要在文档准备就绪时自动触发,则应在onclick之后准备好文档。