我使用此代码使用jquery ajax发布表单。 我的问题是我想让PHP代码像这样:
if (isset($_POST[''])) {
// some code here
}
这是javascript代码:
$("button#submit").click( function() {
if( $("#username").val() == "" || $("#password").val() == "" )
$("div#status").html("Please enter your Email");
else
$.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(),function(data) {
$("div#status").html(data);
});
$("#myForm").submit( function() {
return false;
});
});
答案 0 :(得分:0)
在php文件名中有6个b,但在ajax url中有7个b。
url: "bbbbbbb.php", <--- 7 b's
bbbbbb.php <--- 6 b's
另外,除了成功之外,你也应该有错误,这样你才能看到错误。
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
答案 1 :(得分:0)
如果您测试了代码,并且php部分工作正常,但是您无法在jquery中获得响应,那么,您应该检查您的PHP代码(它应该是这样的):
if (isset($_POST[''])) {
$data = "";
// some code here to fill $data
echo $data; // this is the actual response to the jquery interface.
}
答案 2 :(得分:0)
尽管缺乏实际问题,但这里仍然是一个答案。
第一个问题是javascript在工作时不会完成它应该做的完整工作。 javascript代码似乎想要阻止通过提交事件手动提交表单。您可能希望重新组织javascript,如下所示:
$("#myForm").submit( function() {
return false;
});
$("button#submit").click( function() {
if( $("#username").val() == "" || $("#password").val() == "" ) {
$("div#status").html("Please enter your Email");
} else {
$.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(),function(data) {
$("div#status").html(data);
});
}
});
此外,您可能希望在jquery中查看现代事件观看的使用情况以及.on()
的使用情况。即$("#myForm").on("submit", function() {});
。但这不是这篇文章的重点。
至于PHP代码,我们推断您有以下HTML表单:
<form action="login.php" id="myForm">
<label for="username">Username: </label>
<input type="text" id="username" name="username" />
<label for="password">Password: </label>
<input type="password" id="password" name="password" />
<button type="submit" id="submit" name="submit" value="submit">Submit</button>
</form>
<div id="status">Please provide username and password to login</div>
在login.php中,你会有
if (!empty($_POST)) {
if (isset($_POST['submit']) && $_POST['submit'] == 'submit') {
// validate $_POST contains username and password
...
// sanitize username and password
$username = sanitize($_POST['username']);
$password = sanitize($_POST['password']);
// do my processing
// doLogin returns true for successful login, or message contain error string
$result = doLogin($_POST['username'], $_POST['password']);
if ($result === true) {
echo 'You have successfully logged in';
} else {
echo $result;
}
} else {
echo 'Unknown form action';
}
} else {
// do GET processing
}
有了这个,只需回显你想要出现在div#状态的响应。