0

AJAX 代码:

        <script type="text/javascript">
            function doCalc(){
            var roomX = $('#room_str').val();
            var heightX = $('#height_str').val();
            var widthX = $('#width_str').val();
            var prodid = $('#prodid').val();
            var qtyX = $('#qty_str').val();

            $.post('db_query.php',
            {qtyX:qtyX, roomX:roomX, heightX:heightX, widthX:widthX, prodid:prodid}, 
            function(data) {
                data = $.parseJSON(data);
                $('#width-placeholder').html(data.width);
                $('#height-placeholder').html(data.height);
                // ...
            });
            return false;
            };
        </script>

PHP代码:

<?php
include('db_pbconnection.php');
$query = mysql_query(" SELECT * FROM price_dimensions WHERE prodid = '".$_POST['prodid']."' AND height >= '".$_POST['heightX']."' AND width >= '".$_POST['widthX']."' ORDER BY height ASC, width ASC LIMIT 1 ");
$results = array();
$row = mysql_fetch_array($query);
$results = array(
   'width' => $row['width'],
   'height' => $row['height'],
   'price' => $row['price']
);
$json = json_encode($results);
echo $json;
?>

编辑:感谢亚历克斯,更新的代码可以成功运行。这使用 json_encode 将数据发回,并能够将每个 SQL 行分配给已识别的占位符。这是为了以防您需要在布局中单独移动数据。

4

1 回答 1

1

如果我没记错的话,您尝试做的是将选择器应用于来自 AJAX 请求的 HTML 数据。是的?我不认为 jQuery 会在这里帮助你。

一个选项可能是让这个 div 结构已经在页面上作为带有占位符的模板。并且您的 AJAX 调用应该以 JavaScript 原生、可解析的格式(JSON )返回数据。PHP 有一个函数可以为你生成 JSON - json_encode。从服务器获取 JSON 后,您可以执行以下操作:

function(data) {
    data = $.parseJSON(data);
    $('#width-placeholder').html(data.width);
    $('#height-placeholder').html(data.height);
    // ...
});
return false;
};
于 2012-06-17T13:49:23.720 回答