Javascript Ajax没有';当php连接到数据库时,我什么也不做
我正在尝试使用ajax和PHP在Javascript和我的数据库之间建立一个简单的连接。Javascript应该从HTML表单接收一个名称,修改它并将其发布到PHP,以检查该名称是否已经在数据库中,并将true/false返回给Javascript以供进一步使用 只要我不添加连接到数据库的部分代码,一切都正常。在Chrome中只调用PHP文件也可以工作,它将正确地打印true或false。 只要我把两者连接起来,就什么都不起作用了。Javascript Ajax没有';当php连接到数据库时,我什么也不做,javascript,php,html,jquery,ajax,Javascript,Php,Html,Jquery,Ajax,我正在尝试使用ajax和PHP在Javascript和我的数据库之间建立一个简单的连接。Javascript应该从HTML表单接收一个名称,修改它并将其发布到PHP,以检查该名称是否已经在数据库中,并将true/false返回给Javascript以供进一步使用 只要我不添加连接到数据库的部分代码,一切都正常。在Chrome中只调用PHP文件也可以工作,它将正确地打印true或false。 只要我把两者连接起来,就什么都不起作用了。success和error都不会执行其函数中的任何代码 JS1
success
和error
都不会执行其函数中的任何代码
JS1+PHP1:什么都没有发生 JS1+PHP2:在Alert1和Alert2中正确显示结果 仅PHP1:正确打印true或false
JS1
var boo = false;
if(str.length > 1) boo = true;
if (boo)
$.ajax ({
url: 's5Check.php',
type: 'post',
data: { str : str },
success: function( result ) {
alert(result); //Alert1
if(result != false){
boo = false;
alert(str + " already exists!"); //Alert2
} else {
boo = true;
alert(str + " doesn't exist!"); //Alert3
}
},
error: function( e ) {
alert("Error: " + e); //Alert4
}
});
<?php
if (isset($_POST['str'])) {
$con = mysqli_connect("localhost","root","","dbtest");
$temp = mysqli_real_escape_string($con, $_POST['str']);
$check = "SELECT id FROM handle WHERE name = '$temp'";
$result = $con -> query($check);
if($result->num_rows > 0) {
echo true;
} else{
echo false;
}
} else{
echo "error";
}
?>
PHP1
var boo = false;
if(str.length > 1) boo = true;
if (boo)
$.ajax ({
url: 's5Check.php',
type: 'post',
data: { str : str },
success: function( result ) {
alert(result); //Alert1
if(result != false){
boo = false;
alert(str + " already exists!"); //Alert2
} else {
boo = true;
alert(str + " doesn't exist!"); //Alert3
}
},
error: function( e ) {
alert("Error: " + e); //Alert4
}
});
<?php
if (isset($_POST['str'])) {
$con = mysqli_connect("localhost","root","","dbtest");
$temp = mysqli_real_escape_string($con, $_POST['str']);
$check = "SELECT id FROM handle WHERE name = '$temp'";
$result = $con -> query($check);
if($result->num_rows > 0) {
echo true;
} else{
echo false;
}
} else{
echo "error";
}
?>
谢谢。
echo true
将输出1
<代码>回显错误将不输出任何内容。您没有在success
函数中检查这两项
使用JSON是一个简单的解决方案,可以轻松增强到更复杂的结果
JS:
PHP:
感谢您的快速回答,但不幸的是,它没有改变任何事情。还是不行。因此,我做了一些测试,并将该函数链接到引导表单外的另一个按钮,它成功了。当我把同一个按钮放在表单中时,它不再工作了。你知道为什么吗?看,谢谢。这就解决了问题。
<?php
if (isset($_POST['str'])) {
$con = mysqli_connect("localhost","root","","dbtest");
$check = "SELECT id FROM handle WHERE name = ?";
$stmt = $con->prepare($check);
$stmt->bind_param("s", $_POST['str']);
$result = $stmt->execute();
$response = $result->num_rows > 0;
} else{
$response = "error";
}
echo json_encode($response);
?>