【问题标题】:Use Data From PHP in JavaScript VIA Ajax通过 Ajax 在 JavaScript 中使用 PHP 中的数据
【发布时间】:2015-10-11 11:04:07
【问题描述】:

我正在学习 PDO。我有一个简单的程序,可以在单击按钮时检索 SQL 表中的所有用户并将它们编码为 JSON。然后它返回此数据并通过 AJAX 检索。我提醒数据,它是数组格式。我想知道如何实际访问这些值,我没有尝试过任何工作。如果有帮助,表格列是 "name" 、 "message" 和 "posted"。

    $("button").click(function(){

        $.ajax({

            type: 'POST',
            url: 'Get/index.php',

            success: function(data) {

            //  var obj = $.parseJSON(data);
            //  var v = data.name;
            }
        });



<?php
//print_r(PDO::getAvailableDrivers());

//create handler of new PDO object with parameters of sql
//details, username and password_hash
try {
  $handler = new PDO('mysql:host=127.0.0.1;dbname=app','root','');
  $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {

//die("Sorry Database Issue");

echo $e->getMessage();
die();
}



$query = $handler->query('SELECT * FROM guestbook ');
query->execute();


$results=query->fetchAll(PDO::FETCH_ASSOC);


// save the JSON encoded array
print json_encode($results);



return $results;
?>

【问题讨论】:

  • 嗨!如果您评论中的代码属于该问题,请编辑该问题并将其添加到那里,以便对其进行一些格式化。
  • 对不起,我删除了它。上面的代码就是所需要的。 Ajax 请求,然后是 PHP。
  • 如果我提醒例如 data[0],我会得到返回的第一个字符。我尝试在客户端使用 parseJSON 进行转换,但这也不起作用
  • 这可能有多种原因。首先,您不需要返回线。那么你可能想看看jquery's json functionality。另外,表guestbook中是否有任何值?
  • 我在最后一行返回结果。是的,值回来得很好,如果我 alert(data) 我得到一个包含所有正确值的数组,但它就像一个字符串一样回来,无论我以何种方式尝试像 alert 一样单独访问值(data.name) 或 alert(data[0].name) 等等,没有任何作用

标签: javascript php ajax associative-array


【解决方案1】:

清理并更新了代码并添加了 jquery json:

$("button").click(function(){
    $.getJSON('Get/index.php', function( data ) {
        $.each( data, function( key, entry ) {
            var v = entry.name;
            // and so on
        });
    });
});
<?php
try {
  $handler = new PDO('mysql:host=127.0.0.1;dbname=app','root','');
  $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo $e->getMessage();
    exit;
}

$query = $handler->query('SELECT * FROM guestbook ');
query->execute();
$results=query->fetchAll(PDO::FETCH_ASSOC);
// save the JSON encoded array
echo json_encode($results);
?>

【讨论】:

  • 试过了,但点击按钮没有任何反应。对不起,我的代码很乱,我在尝试不同的东西而不是删除空格..
  • 表中是否有任何值?什么,如果你只是做die(print_r($results));
  • 表中的值都很好,返回了一个包含正确值的数组。如果我执行原始代码和警报(数据),它会显示带有值的数组。有没有办法在这里添加图像?如果是这样,我可以告诉你会发生什么。
  • Array ( [0] => Array ( [id] => 1 [message] => 你好 [name] => michael [posted] => 2015-10-01 00:00: 00 ) [1] => Array ( [id] => 2 [message] => 闭嘴 [name] => tim [posted] => 2015-10-26 00:00:00 ) [2] => Array ([id] => 5 [message] => test [name] => michael [posted] => 2015-10-10 21:06:32))
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 2012-06-13
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
相关资源
最近更新 更多