我必须使用ajax调用只提交两个值来处理php文件。 php文件将使用$ _POST []函数处理数据。问题是我的ajax代码没有正确发送数据所以我没有得到任何结果在console.log(结果)函数。我该如何解决这个问题?任何的想法?
Jquery的:
<script type="text/javascript">
$("#signup_submit").on( "click", function() {
//alert("foo");
var _username = "foo";
var _email = "test@gmail.com";
$.post("check.php", {username: _username, email: _email}, function(result){
console.log(result);
});
});
</script>
PHP:
$username = "";
$email = "";
if ($_POST["username"] && $_POST["email"]) {
$username = $_POST["username"];
$email = $_POST["email"];
}
if ($username != "" && $email != "") {
if (!username_exists($username) && !signup_email($signup_email)) {
json_encode("good");
}else{
json_encode("bad");
}
}
答案 0 :(得分:2)
我已经评论了可能的答案,但我会在这里写一下来简化。 您的javascript代码似乎没问题,但将PHP脚本更改为此并尝试:
$username = "";
$email = "";
$response = ""
if ($_POST["username"] && $_POST["email"]) {
$username = $_POST["username"];
$email = $_POST["email"];
}
if ($username != "" && $email != "") {
if (!username_exists($username) && !signup_email($signup_email)) {
$response = json_encode("good");
}else{
$response = json_encode("bad");
}
}
echo $response;
echo $response
如果您没有添加该行,则无法从您的ajax请求中获得任何结果,因此console.log不会显示任何内容。
希望这会帮助你!
答案 1 :(得分:1)
我认为这段代码对您来说非常有用。
$("#signup_submit").on( "click", function() {
var _username = "foo";
var _email = "test@gmail.com";
$.ajax({
type: 'POST',
url: 'check.php',
dataType: 'text',
data: {
username: _username,
email: _email
},
success: function(response) {
console.log(response);
},
error: function(err) {
alert(err);
}
});
});
和用户#molinet writed一样 - 在php文件中使用$ response然后回显它。
$username = "";
$email = "";
if ($_POST["username"] && $_POST["email"]) {
$username = $_POST["username"];
$email = $_POST["email"];
}
if ($username != "" && $email != "") {
if (!username_exists($username) && !signup_email($signup_email)) {
$response = "good";
}else{
$response = "bad";
}
}
echo $response;