Ajax正在工作,但服务器没有响应



所以我尝试了很多方法来解决我的网络问题。我希望在这里找到一个解决方案。问题是ajax成功功能正常工作,在网络部分,它的状态代码为200,数据输入,但它没有响应,数据也没有插入数据库。

html表单:

<form action="./includes/systemcheck.inc.php" id="reg1" method="post">
<input type="text" id="reg_fname" name="fullName" class="mr_fni">
<input type="number" id="reg_uid" name="userID" class="mr_idi">
<input type="number" id="reg_pnumber" name="phoneN" class="mr_pni">
<input type="submit" name="register1" id="reg1_sub_butt" value="next" 
class="cim_gSubmmit">
</form>
<p id="reg1_result"></p>

php:

if(isset($_POST['register1'])){
$fullName = $_POST['fullName'];
$userID = $_POST['userID'];
$phoneN = $_POST['phoneN'];
if(!empty($fullName) || !empty($userID) || !empty($phoneN)){
$sql = "INSERT INTO `hotelsystem` (`fullName`, `phoneNumber`, `id`) 
VALUES ('$fullName', '$phoneN', '$userID')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
else{
echo "fill all fields please";
}

ajax:

window.onload = function(){

$('#reg1_sub_butt').click(function (e) {
var formData = {
'fullName' : $('#reg_fname').val(),
'userID': $('#reg_uid').val(),
'phoneN': $('#reg_pnumber').val()
}

if(formData.fullName == '' || formData.userID == '' || formData.phoneN == ''){
$('#reg1_result').html('Please fill all fields');
} else {
//if no issues attempt to push code
submitData(formData);
$('#reg1_result').show();
}

return false;

});
}
function submitData(formData){
console.log(formData);
$.ajax({
type: 'POST',
url: './includes/systemcheck.inc.php',
data: formData,
contentType: 'charset=UTF-8',
async: false,
success: function(response) {
$('#reg1_result').html(response + "work");
},
error: function() {
$('#reg1_result').html('There was an error');
}
});
}

通过AJAX发送的formData变量不包含名为register1的字段,因此代码不会输入第一个if块(if(isset($_POST['register1']))(,并且该块上没有其他内容可以提供任何替代输出。

只需将该字段添加到formData对象中即可发送该字段。它的内容并不重要,它只需要存在。例如:

var formData = {
'fullName' : $('#reg_fname').val(),
'userID': $('#reg_uid').val(),
'phoneN': $('#reg_pnumber').val(),
'register1': true
}

或者,您可以保持formData的原样,只需让PHP检查一个或多个其他必需字段,例如:

if(isset($_POST['fullName'])){

p。S您应该从代码中删除async:false,因为它已被弃用且不必要。contentType: 'charset=UTF-8'也无效或有用,您也可以删除它。

您应该修复mysqli代码中的SQL注入漏洞——事实上,无论SQL注入如何,只要在其中一个输入字段中放入',就可以破坏您的查询,所以这是解决问题的另一个好理由。

最新更新