Php、jQuery和AJAX交互和数据操作
我在找一些基本的指导。我理解jQuery。我理解PHP。我在使用AJAX时遇到了一些困难 我可以使用AJAX从PHP和后续数据库内容中提取数据,但是如何在HTML中使用它呢 我已经习惯了: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
<?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 />');
});
}
});