javascript - 使用 XMLHttpRequest、PDO、JSON、PHP 和 JavaScript 从数据库中获取数据

标签 javascript php mysql json pdo

所以继我的最后一个question之后我想使用输入标记中提交的值来获取数据库中的匹配 ID。我为其创建了两个文件,但我不知道如何链接它们。另请注意,我创建了一个包含一些值(id、名字等)的数据库,当用户填写 1 时,我希望它显示 id 1 和名字。
此代码来自上一个问题&我添加了 xmlhttp:

输入代码

选择 1 到 5 之间的数字 您的信息将显示在此处

点我吧! var myButton = document.getElementById('btn'); myButton.onclick = 函数(){ 警报(document.getElementById('myid').value); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = 函数() { if( xmlhttp.readyState == 4 && xmlhttp.status == 200) { var dbText = xmlhttp.responseText; document.getElementById('dbinfo').innerHTML = dbText; } } xmlhttp.open("POST", "LinkToDataFile", true); xmlhttp.setRequestHeader("内容类型", "application/x-www-form-urlencoded"); }

这就是用户看到的内容,并且数字显示正确,但是我现在需要将其链接到我的文件 data.php,我已经尝试过该文件,但它无法获取该值。

数据代码

<?php
    require_once('input_code');
    //Get the data from the database and echo them here
    $servername = "localhost";
    $username = "root";
    $password = "";
    $databasename = "db_name";

    try
    {
        $connection = new PDO("mysql:host=".$servername.";dbname=".$databasename, $username, $password);
        $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        
        
        $statement = $connection->prepare("SELECT `id`, `firstname`, FROM `db_name` WHERE `id` = :myid"); //Here it needs to grab the value but it does not work.
        $statement->bindParam(':id', $id);
        $id = $_POST['id'];
                        
        $statement->execute();
        
        $result = $statement->setFetchMode(PDO::FETCH_ASSOC);
        
        $data = "";
        foreach($statement->fetchAll() as $key => $value)
        {
            $data .= $value['id']." | ".$value['firstname'];
        }
    }
    catch(PDOException $e)
    {
        echo "The following error occurred : ".$e->getMessage();

    }

    echo $data;
    

?>

那我做错了什么?我是否又错过了一些明显的东西,比如 $id ,或者是一系列错误,它现在唯一做的就是给我一个带有数字的警报。

最佳答案

通过在 $statement 之前添加一行并移动 $id ,这一切都得到了修复,感谢 Dante Javier

输入代码

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  //Under this add the following lines:
                var id = document.getElementById('myid').value; 
                xmlhttp.send("id="+id);

数据代码

$id = $_POST['id']; //Move this above the $statement = $connection->prepare.

关于javascript - 使用 XMLHttpRequest、PDO、JSON、PHP 和 JavaScript 从数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30805663/

相关文章:

javascript - Jquery $(this) 不在函数内工作

php - Grocery 增删改查 : callback functions does not work

mysql - 在 mysql 服务器上执行的查询列表

c# - 填充包含名称和项目 ID 的保管箱

php - mysql/php 语法错误图像

javascript - 如何让 HTML Spin Box 箭头注册为 OnKeyUp 输入

javascript - IE6 CSS Z 索引

javascript - 检测版本的向后不兼容的 API 更改

php - 获取目录中最新的文件添加

php - jQuery 中删除一项后计算一张动态表的总和