如何从php检索echo数据到jquery 1 by 1

时间:2014-11-18 03:36:36

标签: javascript php jquery mysql

我在点击上有一个JQuery,它向MySql发送一个php查询,然后我想在JQuery上逐个发送数据。

但我只知道如何将PHP的结果作为一个整体发回给JQuery。

我目前的JQuery:

$(function() {
    $(".img_thumb_holder").on("click", function() {
        $.ajax({
        type: "POST",
        url: "CMS/PHP/retrieveAuthorDetails.php",
        success: function(data) {
                alert(data);
            }
        });
    });
});

我目前的php:

<?php
include 'dbAuthen.php';
$sql = "SELECT * FROM users WHERE Name = 'james'";

$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{
    echo $row['UserID'];;
    echo $row['EmailAddr'];
}
?>

输出是UserID和EmailAddr,我不知道如何只显示UserID或EmailAddr

我尝试了警告(data [0]),但它只显示了结果的一个字母..有关如何执行此操作的任何想法?

更新:在肖恩的帮助下,我有了当前更新的代码

Jquery的:

$(function() {
    $(".img_thumb_holder").on("click", function() {
        $.ajax({
        type: "POST",
        dataType: "json",
        url: "CMS/PHP/retrieveAuthorDetails.php",
        success: function(data) {
                $.each(data, function() {
                    var userid = data.userid;
                    var useremail = data.email;
                    // i think there something wrong with this as it will keep repeating storing the userid and email for each data.. can someone verify?
                });
            }
        });
    });
});

PHP

<?php
include 'dbAuthen.php';
$sql = "SELECT * FROM users WHERE Name = 'honwenhonwen'";

$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{
    $arr = array(
        "userid" => "HonWen",
        "email" => "honwen@hotmail.com"
    );
}

echo json_encode($arr);
?>

2 个答案:

答案 0 :(得分:1)

在你的php中,将结果保存到数组 -

<?php
include 'dbAuthen.php';
$array = array(); // create a blank array
$sql = "SELECT * FROM users WHERE Name = 'james'";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{
    // add each result to the array
    $array[] = array('UserID'=> $row['UserID'], 'EmailAddr'=> $row['EmailAddr']);
}

echo json_encode($array); // json_encode() the array
?>

然后在你的js / ajax中你可以遍历每个值

$(function() {
    $(".img_thumb_holder").on("click", function() {
        $.ajax({
          type: "POST",
          url: "CMS/PHP/retrieveAuthorDetails.php",
          success: function(data) {
            // loop through each returned value
            $.each(data, function(){
                  //alert each result, this is just an example as alert() for each result is not a great idea
                  alert("UserID:"+ this.UserID + " EmailAddr:" + this.EmailAddr);
            });
          }
        });
    });
});

答案 1 :(得分:1)

jquery的

$(function() {
        $(".img_thumb_holder").on("click", function() {
            $.ajax({
            type: "POST",
            dataType: "json",
            url: "CMS/PHP/retrieveAuthorDetails.php",
            success: function(data) {
                    $.each(data, function() {
                        var userid = data.userid;
                        var useremail = data.email;
                        // i think there something wrong with this as it will keep repeating storing the userid and email for each data.. can someone verify?
                    });
                }
            });
        });
    });

PHP

<?php
include 'dbAuthen.php';
$sql = "SELECT * FROM users WHERE Name = 'honwenhonwen'";

$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{
    $arr = array(
        "userid" => "HonWen",
        "email" => "honwen@hotmail.com"
    );
}

echo json_encode($arr);
?>