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 に答える