javascript - 基于 JSON 添加表行

标签 javascript php jquery mysql 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 参数,但从未在函数中使用它。相反,有这个神秘/未定义的

关于javascript - 基于 JSON 添加表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952563/

相关文章:

javascript - 无法激活基于 JavaScript IE 识别的事件

php - 加载和重新加载时的 ExtJS 网格回调

php - 正则表达式正在划分单个语句?

javascript - 鼠标悬停时单词高亮显示

javascript - 在页面加载之前禁用 jQuery 的 onclick?

javascript - 当输入字段为空时,jQuery 验证不起作用

javascript - 将一个 div 标签对齐到另一个标签下方

javascript - 如果选中复选框,则将他的 textValue 附加到另一个 span

javascript - 如何通过 jQuery 在按键事件期间获取 HTML 文本输入的新值?

php - 找不到 Laravel 5 类日志