Javascript 基于JSON添加表行
我是JSON新手。我有一个选择框,上面有JavaScriptJavascript 基于JSON添加表行,javascript,php,jquery,mysql,json,Javascript,Php,Jquery,Mysql,Json,我是JSON新手。我有一个选择框,上面有JavaScriptchange()trigger。我根据选择的值使用Ajax执行MySQL查询。查询结果将作为HTML表中的新行打印 但新行没有追加。我做错了什么 HTML <select id="orderAddProduct"> <option value=""></option> <option value="0001">Product 1</option> <
change()
trigger。我根据选择的值使用Ajax执行MySQL查询。查询结果将作为HTML表中的新行打印
但新行没有追加。我做错了什么
HTML
<select id="orderAddProduct">
<option value=""></option>
<option value="0001">Product 1</option>
<option value="0002">Product 2</option>
</select>
<table id="orderTable">
<tr><th>ID</th><th>Name</th></tr>
</table>
变量名
function orderAddRow($item) {
^^^^^^----
var row = '<tr><td>'+value.id+'</td>'
^^^^^----
函数orderAddRow($item){
^^^^^^----
变量行=“”+value.id+“”
^^^^^----
您定义了一个$item
参数,但从未在函数中使用它。相反,这里有一个神秘的/未定义的值
success: function (data) {
alert("OK");
orderAddRow(data);
},
您丢失了返回值。好的,主要问题是我的代码中没有
JSON.parse()
函数。下面是我的最终工作代码
$("#orderAddProduct").change(function () {
var element = $(this);
var selectedValue = $(this).val();
$.ajax({
type: "GET",
url: "orderAddProduct.php",
data: {option : selectedValue},
datatype: "json",
success: function (response) {
response = JSON.parse(response);
if(response === undefined) {
alert("undefined");
} else {
orderAddRow(response);
}
},
error: function () {
alert("ERROR");
}
});
return false;
});
function orderAddRow($data) {
$.each($data,function(index,value) {
var row = '<tr><td>' + value.ID + '</td>'
+ '<td>' + value.name + '</td></tr>';
$('#orderTable').append(row);
});
}
$(“#orderAddProduct”).change(函数(){
var元素=$(此);
var selectedValue=$(this.val();
$.ajax({
键入:“获取”,
url:“orderAddProduct.php”,
数据:{选项:selectedValue},
数据类型:“json”,
成功:功能(响应){
response=JSON.parse(response);
如果(响应===未定义){
警报(“未定义”);
}否则{
orderAddRow(响应);
}
},
错误:函数(){
警报(“错误”);
}
});
返回false;
});
函数orderAddRow($data){
$。每个($数据、函数(索引、值){
变量行=“”+value.ID+“”
+''+value.name+'';
$('#orderTable')。追加(行);
});
}
我刚刚忘记了一个代码块…对不起-我将把这些行添加到我的问题中…是否显示了警报(“OK”)
呢?您是否检查了变量数据
是否包含您希望它包含的内容(例如使用控制台.log(数据)
)?控制台日志中有任何错误吗?每个
循环是否按您认为的方式执行(通过在其中放入console.log
进行检查)?@Anders,是的,警报(“确定”)
显示正确。我刚刚编辑了代码并添加了console.log(数据)
,请查看我问题中的错误消息。selectedValue
是未定义的索引…我应该怎么做?如果您标记第21行会有所帮助。@Anders,我使用的是$\u REQUEST['selectedValue']
而不是$\u REQUEST['option']
,这是正确的。现在所有其他内容(json)可以,但没有行追加。我认为问题出在orderAddRow()
函数中
success: function (data) {
alert("OK");
orderAddRow(data);
},
$("#orderAddProduct").change(function () {
var element = $(this);
var selectedValue = $(this).val();
$.ajax({
type: "GET",
url: "orderAddProduct.php",
data: {option : selectedValue},
datatype: "json",
success: function (response) {
response = JSON.parse(response);
if(response === undefined) {
alert("undefined");
} else {
orderAddRow(response);
}
},
error: function () {
alert("ERROR");
}
});
return false;
});
function orderAddRow($data) {
$.each($data,function(index,value) {
var row = '<tr><td>' + value.ID + '</td>'
+ '<td>' + value.name + '</td></tr>';
$('#orderTable').append(row);
});
}