从ajax中获取来自php的回显数据

时间:2014-10-22 14:53:36

标签: php ajax

$(document).ready(function() {

  $(document).ready(function () {

var request = $.ajax({
    url: 'inc/everything.php',
    type: "POST",
    dataType: "html",

    success: function (data) {


        if ("row:has('tacobell');") {
            $('#oriental').html(name);

        }
    }

});
});
.encasing {
  width: 193px;
  height: 400px;
  float: left;
}
.result-ingredient {
  z-index: 13;
  width: 150px;
  margin: 10px;
  float: left;
}
 <div class=" encasing">
            <img class="result-ingredient" src="img/chicken.png">
            <div id ="chicken"> </div>
        </div>
        <div class=" encasing">
            <img class="result-ingredient" src="img/beef.png">
             <div id ="beef"> </div>
        </div>
        <div class=" encasing">
            <img class="result-ingredient" src="img/pork.png">
             <div id ="pork"> </div>
        </div>
        <div class=" encasing">
            <img class="result-ingredient" src="img/oriental.png">
            <div id ="oriental"> </div>
        </div>
<?php
include 'database.php';

   $sql = "SELECT * FROM `answers` WHERE 1 ORDER BY `choices` ASC ";

  $result = mysql_query($sql, $conn);
   if (!$result) {
         var_dump($result);
        $message .= 'DB Error occured';
        die($message);
    }

     while ($row = mysql_fetch_assoc($result)) {
      echo "Name:" . ($row['name']) . " " . "choices:" . $row['choices'];
        echo "<br>";

    }


?>     

必须有更好的方法在html中显示所有这些查询。 我希望人名出现在他们之前选择的项目下,这与数据库中的值相对应。它不完全正常工作,我想知道我是否只是以错误的方式解决这个问题?

  1. 有没有办法用少量代码显示和排序多个查询,而不是使用?
  2. 最好的方法是在ajax中获取生成的代码以发送到html?
  3. 编辑:

    我不知道如何让ajax获取我想要的正确数据。我的想法是检查是否有任何行具有某个值,然后只是发布该名称,但它不起作用。

    这是数据库现在打印的内容

    姓名:trisha选择:鸡肉,tacobell

    姓名:莎拉选择:鸡,mcrab,sriracha,tacobell

    名称:rachel选择:鸡肉,豌豆,玉米,生菜,mcrab,sriracha,tacobell

2 个答案:

答案 0 :(得分:1)

有没有办法用比我使用的代码更少的代码显示和排序多个查询?

是。使用REGEXP进行1次查询。

SELECT `name`,`choices` AS choice_number,
    CASE 
      WHEN choices = 1 THEN  'oriental'
      WHEN choices = 2 THEN  'pork'
      WHEN choices = 3 THEN  'beef'
      WHEN choices = 4 THEN  'chicken'
      WHEN choices = 5 THEN  'shrimp'
    END as choice_string
FROM `answers` 
WHERE `choices` REGEXP '[1|2|3|4|5]';

然后,在您的循环中,您可以使用$row['name']$row['choice_number']$row['choice_string']

在ajax中获取生成的代码以发送到html的最佳方法是什么?

我看到你正在使用jQuery $ .ajax,它在datasuccess函数的参数)中有PHP文件的响应,这很好。然后,您使用data方法编写html,我认为没有理由进行更改。

答案 1 :(得分:0)

我会在服务器上使用JSON,这样可以更好地在Javascript中进行迭代。

SELECT name FROM answers WHERE choices = 1 OR choices = 2 OR choice = 3....

然后,

 $resp = array();
 while ($row = mysql_fetch_assoc($result)) {
    $resp[] = $row;
 }
 echo json_encode($resp);

在客户端:

$(document).ready(function() {
  var request = $.ajax({
    url: 'php/everything.php',
    type: "POST",
    data: datastring,
    dataType: "json",
    success: function(data) {
      $.each(data, function (index, value) {
         $('#oriental').append(value);
      });
    }
  });
  request.done(function(msg) {
    $("#log").html(msg);
  });


});