我正在寻找一些基本的指导。我了解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 }
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 />');
});
}
});