Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax没有';当php连接到数据库时,我什么也不做_Javascript_Php_Html_Jquery_Ajax - Fatal编程技术网

Javascript Ajax没有';当php连接到数据库时,我什么也不做

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

我正在尝试使用ajax和PHP在Javascript和我的数据库之间建立一个简单的连接。Javascript应该从HTML表单接收一个名称,修改它并将其发布到PHP,以检查该名称是否已经在数据库中,并将true/false返回给Javascript以供进一步使用

只要我不添加连接到数据库的部分代码,一切都正常。在Chrome中只调用PHP文件也可以工作,它将正确地打印true或false。 只要我把两者连接起来,就什么都不起作用了。
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);
?>