添加基于JSON的表行
Adding table rows based on JSON
我是JSON的新手。我有一个选择框和JavaScript change()
触发器。我根据选择的值用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>
JavaScript
$("#orderAddProduct").change(function () {
var element = $(this);
var selectedValue = $(this).val();
$.ajax({
type: "POST",
url: "orderAddProduct.php",
data: {option: selectedValue},
datatype: "json",
success: function (data) {
alert("OK");
orderAddRow(data);
},
error: function () {
alert("ERROR");
}
});
});
function orderAddRow($item) {
$.each($item,function(index,value) {
var row = '<tr><td>'+value.id+'</td>'
+'<td>'+value.name+'</td></tr>';
$('#orderTable').append(row);
)};
}
PHP
try {
$pdo = new PDO(DB_TYPE . ':host=' . DB_HOST . '; dbname=' . DB_NAME, DB_USER, DB_PASS);
} catch (PDOException $e) {
die("ERROR: " . $e->getMessage());
}
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec("SET NAMES utf8");
$productId = $_REQUEST['option'];
$sql = $pdo->prepare("SELECT * FROM products_view WHERE id = ?");
$sql->execute(array($productId));
$row = $sql->fetch(PDO::FETCH_ASSOC);
$json_array = array("ID" => $row['id'], "name" => $row['name']);
echo json_encode($json_array);
function orderAddRow($item) {
^^^^^^----
var row = '<tr><td>'+value.id+'</td>'
^^^^^----
您定义了一个$item
参数,但从不在函数中使用它。取而代之的是这个神秘的/未定义的value
。
好的,主要问题是我的代码中没有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);
});
}
success: function (data) {
alert("OK");
orderAddRow(data);
},
您错过了返回的值。
相关文章:
- Gmaps4rails:如何向 json 添加属性
- 向JSON添加值
- 从node.js模块中向JSON添加原型函数
- Ajax JSON 添加尾随冒号
- 无法将解析的 JSON 添加到主干集合
- 将 /.json 添加到快速路由末尾的最佳方法是什么
- 从 JSON 添加图像和文本以 html 形式列出
- 将异步 REST 调用 JSON 添加到 Angular $scope
- 向声音云响应json添加一个变量
- 如何使用 $interpolate 函数从 JSON 添加动态指令名称
- 如何使用jQuery Ajax将数据从JSON添加到HTML
- 在AngularJS中将json添加到作用域
- 使用Javascript为JSON添加嵌套键
- 存储在变量中的JSON添加了键
- Angular——给json添加值
- JSON:添加指针
- 在Javascript中从外部json添加多个标记到谷歌地图
- Knockout.js-试图将JSON添加到视图模型中是未定义的
- Jquery json添加新行
- 在不使用eval的情况下向JSON添加函数