php—使用ajax将sql查询转换为javascript

mi7gmzs6  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(307)

我正在尝试将一个javascript变量传递到sql中,在sql中,我不断得到null作为返回。
单击按钮时,将运行buttonclick功能:

<script>
    var var1;
    function buttonClick(elem){
        var1 = elem.src              //this gets the url from the element
        var path = var1.slice(48);   //this cuts the url to img/art/9/1.jpg
        ajax = theAjax(path);
        ajax.done(processData);
        ajax.fail(function(){alert("Failure");});
    }

    function theAjax(path){
        return $.ajax({
            url: 'info.php',
            type: 'POST',
            data: {path: path},
        });
    }

    function processData(response_in){
        var response = JSON.parse(response_in);
        console.log(response);
    }
</script>

以下是info.php文件中存储的代码:

<?php
    $path = $_POST['path'];

    $result3 = mysqli_query("SELECT itemName from images WHERE imgPath='$path'");
    $json = json_encode($result3);

    echo $json
?>

如您所见,单击按钮后,将运行buttonclick()函数,并有一个变量存储图像路径或src。这个path变量被发送到theajax()函数,在那里它被传递到info.php页面。在info.php页面中,运行查询并将其返回到processdata()函数的sql,以便在开发人员控制台中进行分析和打印。打印的值显示为空。
下面是我试图从数据库中获取的内容的图片:

zu0ti5jz

zu0ti5jz1#

我认为你的问题是你试图编码一个数据库资源。
请尝试调整您的php,使其如下所示:

<?php
    $path = $_POST['path'];

    $result3 = mysqli_query("SELECT itemName from images WHERE imgPath='$path'");
    $return_data = [];
    while($row = mysqli_fetch_assoc($result3)) {
        $return_data[] = $row;
    }
    $json = json_encode($return_data);

    echo $json
?>
fhity93d

fhity93d2#

1.检查一下 path 正确与否?您可以使用 console.log(path); 或者在php端使用 print_r($_POST['path']); 2.您的php代码丢失了连接对象以及记录获取代码。

<?php

    if(isset($_POST['path'])){
        $path = $_POST['path'];

        $conn = mysqli_connect ('provide hostname here','provide username here','provide password here','provide dbname here') or die(mysqli_connect_error());

        $result3 = mysqli_query($conn,"SELECT itemName from images WHERE imgPath='$path'");

        $result = []; //create an array

        while($row = mysqli_fetch_assoc($result3)) {
             $result[] = $row; //assign records to array
        }
        $json = json_encode($result); //encode response
        echo $json; //send response to ajax
    }

?>

note:- this php查询代码对 SQL INJECTION . 所以试着用 prepared statementsmysqli_* 或者 PDO .

niknxzdl

niknxzdl3#

mysqli_query() 必需的第一个参数作为连接对象。

$result3 = mysqli_query($conn,"SELECT itemName from images WHERE imgPath='$path'"); // pass your connection object here

相关问题