我有一个表单来插入用户。我使用POST方法和存储过程。将根据插入的数据自动调用ReturnStatus
和ReturnMessage
。
在插入数据之前,我遇到了一些错误,因为ajax返回null
值。但是当表单填写完毕并提交其工作完全正确并设法显示成功操作的结果时。
这是我的代码:
php
if(isset($_POST['submit']))
{
$UserNm=$_POST["UserNm"];
$UserId=$_POST["UserId"];
$UserPwd=$_POST["UserPwd"];
$stmt = odbc_exec(
$conn,
"CALL UserInsert (
'$UserNm',
'$UserId',
'$UserPwd',)"
);
if (!$stmt) {
"Error : " . odbc_errormsg();
}
if ($stmt) {
if (odbc_fetch_row($stmt)) {
$ReturnStatus=odbc_result($stmt,'ReturnStatus');
$ReturnMessage=odbc_result($stmt,'ReturnMessage');
}
if(isset($ReturnStatus) && $ReturnStatus==1) {
$ReturnMessage=odbc_result($stmt,'ReturnMessage');
}
}
}
echo json_encode($ReturnMessage);
?>
脚本
<script>
$.ajax({
url: "insert_sp.php",
dataType: "json",
success: function(data){
alert(data.test);
}
});
</script>
请帮帮我。谢谢:))
答案 0 :(得分:1)
您正在检查POST请求类型:
if(isset($_POST['submit']))
当您的ajax发送GET
请求时,请详细了解如何使用ajax和jquery POST。
<script>
$.ajax({
url: "insert_sp.php",
method: "POST",
data: {submit: 'true'},
success: function(response) {
// while you are expecting a json response
// so you will need to decode it .
var data = JSON && JSON.parse(response) || $.parseJSON(response);
alert(data);
}
});
</script>
答案 1 :(得分:1)
检查您的$ReturnMessage
对象是否为UTF-8编码,因为json_encode仅处理UTF-8编码数据。
您可以使用HeidiSQL测试编码,并使用http://php.net/manual/de/function.mb-detect-encoding.php
@see:http://php.net/manual/de/function.utf8-encode.php:
所有字符串数据必须采用UTF-8编码。
在json_encode
行之前添加此行:
$ReturnMessage = utf8_encode ( $ReturnMessage );