Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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 我的代码不适用于select_Javascript_Php_Mysql_Ajax_Mysqli - Fatal编程技术网

Javascript 我的代码不适用于select

Javascript 我的代码不适用于select,javascript,php,mysql,ajax,mysqli,Javascript,Php,Mysql,Ajax,Mysqli,我知道有人问过我这个问题,但在浏览了这个网站和其他网站的教程之后,我找不到解决方案。我有DELETE、SELECT(*)和INSERT语句,它们使用几乎相同的语法,但由于某些原因,这不起作用。我试图返回用户从数据库创建的文件列表,以下是我的Javascript和PHP: Javascript: $('#btnLoad').on('click', function(e) { e.preventDefault(); var dataString ='emailHold

我知道有人问过我这个问题,但在浏览了这个网站和其他网站的教程之后,我找不到解决方案。我有DELETE、SELECT(*)和INSERT语句,它们使用几乎相同的语法,但由于某些原因,这不起作用。我试图返回用户从数据库创建的文件列表,以下是我的Javascript和PHP:

Javascript:
$('#btnLoad').on('click', function(e) {
        e.preventDefault();
        var dataString ='emailHolder=' + email;
        $.ajax({
            type: "POST",
            url: "process_load.php",
            data: dataString,
            dataType:'json',
            success: function(data){
            alert(data);
        },
        });

    });
以及process_load.php文件:

<?php
include_once 'db_connect.php';
include_once 'psl-config.php';



        $email = $_POST['emailHolder'];
        $query="SELECT filename from maps WHERE email=?";
        $email = filter_var($email, FILTER_VALIDATE_EMAIL);


    if ($stmt = $mysqli->prepare($query)) {
$stmt->bind_param('s', $email);
    /* execute statement */
        $stmt->execute();

    /* bind result variables */
        $stmt->bind_result($email);

    /* fetch values */
        while ($stmt->fetch()) {
            printf ("%s\n", $email);
        }

    /* close statement */
    $stmt->close();
}

    ?>

我很感激你能给我的任何帮助


编辑:抱歉,我正在绑定参数,但在尝试将厨房水槽扔向问题时意外删除了它。谢谢大家的帮助

您缺少
绑定参数()
。第二,Javascript需要JSON,但您只是输出由新行分隔的原始电子邮件。改为:

$output = array(); // build an array that can be json encoded

if ($stmt = $mysqli->prepare($query)) {

    $stmt->bind_param('s', $email); // bind the param in the WHERE clause

    /* execute statement */
        $stmt->execute();

    /* bind result variables */
        $stmt->bind_result($email);

    /* fetch values */
        while ($stmt->fetch()) {
            $output[] = $email; // append to the array
        }

    /* close statement */
    $stmt->close();
}

echo json_encode($output); // output json
现在,您可以在Javascript端获取电子邮件数组:

   $.ajax({
            type: "POST",
            url: "process_load.php",
            data: dataString,
            dataType:'json',
            success: function(data){
                for(var i=0; i<data.length; i++){
                    console.log( data[i] ); // logs each email
                }
        },
    });
$.ajax({
类型:“POST”,
url:“process_load.php”,
数据:dataString,
数据类型:'json',
成功:功能(数据){

对于(var i=0;i而言,您的主要问题是您试图同时坐在两张椅子上,甚至更多的椅子上

由于没有工作的服务器端代码,甚至不知道如何编写,您已经在尝试编写JS和AJAX。因此,您有一堆非常随机的代码行,并且不知道为什么它不工作

这样不行。
  • 首先,您必须学习如何使用mysqli。一般来说
  • 只有在这之后才能尝试编写服务器端代码
  • 最后,只有在使服务器端部分能够处理模拟数据之后,才可以从JS开始

您收到的错误消息是什么?您提供了json数据类型,因此您必须对输出进行json编码。您的查询中有一个?但我看不到您将值绑定到它的位置。您应该绑定到电子邮件的值在哪里?很抱歉,我在清理代码时忘记将其重新添加。当我尝试不同的操作时,我发现st意外地删除了它,这显然造成了更多的问题。