我想将 username
和 password
传递给 php 脚本并检查数据库。在客户端,我使用以下脚本制作一个 json 对象
并将其发布到 php 文件。
var myobj = {};
myobj["usrname"]= $( "#customer option:selected" ).text();
myobj["usrpass"]= $("#psw").val();
var myjson = JSON.stringify(myobj);
$.ajax({
method: "POST",
url: "checkpass.php",
data: myjson
})
.done(function( msg ) {
alert( msg );
});
在服务器端,当我在 firebug
中看到时,帖子被传递为
Parametersapplication/x-www-form-urlencodedDo not sort {"usrname":"XXXXXXX...
JSONusrname "XX"
usrpass "justdoit" Source {"usrname":"XXX","usrpass":"justdoit"}
然而,当我运行 php 脚本来检查查询时,它返回一个错误
$usrname = $_POST['usrname'];
$usrpass = $_POST['usrpass'];
$sql = "select count(*) from glusers where EmpName='$usrname' and EmpPass='$usrpass'";
$result = $conn->query($sql);
if($result >0){
$output = 'Success';
} else
{
$output = 'fail';
}
我已经尝试过所有帖子,但无法正常工作。
提前致谢。
问候,
最佳答案
为了让ajax有一个成功的事件,回显并终止语句
Js File
var myobj = {};
myobj["usrname"] = 'myUsername';
myobj["usrpass"] = 'myPassword';
$.ajax({
type: "post",
url: "url",
dataType: "json",
data: {post_data: myobj},
contentType: "application/x-www-form-urlencoded",
success: function (responseData) {
console.log(responseData);
},
error: function (errorThrown) {
console.log(errorThrown);
}
});
PHP action File
/** if we print post we will get the following array * */
//print_r($_Post);
//die()
//Array
//(
// [post_data] => Array
// (
// [usrname] => myUsername
// [usrpass] => myPassword
// )
//
//)
if (isset($_Post['post_data'])) {
$myPost = $_Post['post_data'];
$usrname = $myPost['usrname'];
$usrpass = $myPost['usrpass'];
$sql = "select count(*) from glusers where EmpName='$usrname' and EmpPass='$usrpass'";
$result = $conn->query($sql);
$num_row = $result->num_rows;
if ($num_row > 0) {
$output = 'Success';
} else {
$output = 'fail';
}
echo json_encode($output);
die();
}
关于php - php中的json对象没有被读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30161016/