Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php、jQuery和AJAX交互和数据操作_Php_Ajax_Jquery - Fatal编程技术网

Php、jQuery和AJAX交互和数据操作

Php、jQuery和AJAX交互和数据操作,php,ajax,jquery,Php,Ajax,Jquery,我在找一些基本的指导。我理解jQuery。我理解PHP。我在使用AJAX时遇到了一些困难 我可以使用AJAX从PHP和后续数据库内容中提取数据,但是如何在HTML中使用它呢 我已经习惯了: <?php echo '<html><head></head><body>'; $query = mysql_query("SELECT something FROM sometable WHERE field='.$field.'"); while

我在找一些基本的指导。我理解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>';
?>
这是我应该处理数据的地方吗?如果是,是否有一种特定的方式是最好的

我是否只需在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 }

在这个结构中考虑返回JSON < /P>

{"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"}
    ]
}}
然后您将执行类似的操作来附加一个

列表; }); } });
您能否给出一个示例,说明您在对
api.php
@RobSchmuecker的Ajax调用中输出的JSON。这就是你想要的吗?我们可以看看样本输出,给你一个更直接的答案,而不是一些假设的解决方案。我实际上不能分享具体的数据。我所能做的最好的事情就是创建一个类似的假设数据流,我不需要向php文件“发送”信息。我需要操作PHP文件生成的数据。请再读一遍。也许这就是我在前面的评论中没有理解的地方。“菜单项”在哪里起作用?菜单是表名吗?我将用一些控制台输出更新这个问题。看看JSON结构!这就是为什么我要求您提供一些特定的JSON,以使其更易于理解<代码>菜单是JSON结构的根节点<代码>项是菜单节点的子项以及
标题
,但是
标题
只有一个值/节点,而不是多个子项<代码>菜单也可以被称为
果冻豆
,然后你的
项目
将来自
items=data.jellybeans.items
我没有试图让任何人不高兴。不知道你为什么用感叹号大叫。这是我很难理解或找到解释的部分——数据操作。我不知道如何像配置PHP数据一样将JSON数据配置为可用格式。你不会让任何人感到不安!使用真实的例子比假设的糖果更容易!尝试为JSON提供一个根节点来工作。而不是
$data[]=$row
在php中尝试
$data['jellybeans']=$row
这样,所有
都将驻留在
jellybean
节点下。因为您告诉Ajax函数它需要JSON,所以它会自动将响应解析为JSON,并将其转换为一个对象,您可以根据需要循环处理该对象的各个部分。
{ 0 = id }
{ 1 = name }
{ 2 = 3.7 }
{ 3 = Y }
{ 4 = 0 }
{"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"}
    ]
}}
$.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 />');
        });
    }
});