AJAX将返回的数据分离为特定的DIV

时间:2012-06-17 13:16:06

标签: ajax parsing variables html

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;
?>

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

1 个答案:

答案 0 :(得分: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;
};