0

我正在寻找一些基本的指导。我了解 jQuery。而且我了解PHP。我在使用 AJAX 时遇到了一些困难。

我可以使用 AJAX 从 PHP 和后续数据库内容中提取数据,但是如何在 HTML 中使用它?

我习惯的:

<?php
echo '<html><head></head><body>';

 $query = mysql_query("SELECT something FROM sometable WHERE field='.$field.'");
 while ($row = mysql_fetch_array($query)) {
    $id = $row['id'];
    $name = $row['name'];
    if (str_len($name >= 15)) { $name = substr($name,0,15)."..."; }
    $icon = '';
    switch($id) {
      case 1: $icon = 'A';
      case 2: $icon = 'B';
      case 3: $icon = 'C';
     }

      echo '<a href="#'.$id.'">'.$icon.$name.'</a><br />';
 }


 echo '</body></html>';
?>

如何以类似的方式使用 AJAX?
或者我什至应该尝试与 AJAX 类似的东西吗?

例如,我可以这样做(在正确的 HTML 内):

    $.ajax({                                      
      url: 'api.php',         
      data: "", 
      dataType: 'json',       
      success: function(rows)  
      {
        for (var i in rows) {
        var row = rows[i];
            var id = row[0]; 
        var vname = row[1]; 
            $('#output').html('<a href="#id'+id+'">'+vname+'</a><br />'); 
            }
    }
  });

我遇到的困难是理解如何将开关和其他数据操作实现为 AJAX 项目/数据/对象。

api数据调用类似这样:

$result = mysql_query("SELECT something FROM sometable WHERE field =$field");        
  $data = array();
  while ($row = mysql_fetch_row($result)) {
  $data[]=$row;
  }
  echo json_encode($data);

这是我应该操作数据的地方吗?如果是这样,是否有最好的特定方式?:

我是否只是在 PHP 中设置数据操作?如果是这样,如何正确地通过 AJAX 传递该数据?

还是我应该使用 jQuery/javascript 来执行所有数据操作?

我搜索过,我发现 90% 的 AJAX 教程本质上都很简单,并没有真正解释这些事情。

编辑:JSON 数据的一般控制台输出如下所示:

success: function(data)  
      {
       $.each(data, function(index, item){
        var name;
        for(name in item){ console.log(name + " = " + item[name]);}
        });
     }

和控制台:

{ 0 = id }
{ 1 = name }
{ 2 = 3.7 }
{ 3 = Y }
{ 4 = 0 }
4

1 回答 1

0

OK 考虑在这个结构中返回的 JSON

{"menu": {
    "header": "SVG Viewer",
    "items": [
        {"id": "OpenNew", "label": "Open New"}
        {"id": "ZoomIn", "label": "Zoom In"},
        {"id": "ZoomOut", "label": "Zoom Out"},
        {"id": "OriginalView", "label": "Original View"}
    ]
}}

然后你会做这样的事情来附加一个列表<a>到你的#output

$.ajax({
    url: 'api.php',
    dataType: 'json',
    success: function (data) {
        items = data.menu.items;
        $.each(items, function (index, item) {
            $('#output').append('<a href="#id' + item.id + '">' + item.label + '</a><br />');
        });
    }
});
于 2013-08-21T09:01:25.797 回答