0

jquery / ajax / phpを使用して次のスクリプトをコーディングしようとしています。何が起こるかというと、php はデータベースからすべてのレコードを取得し、それらを選択ドロップダウンに入れます。ドロップダウン ajax からアイテムを選択すると、データベースから価格が取得され、 priceeach1 というスパンに追加されます。それが本来の目的ですが、私のjqueryは役に立ちません:-S。stockID は、選択ボックスの値から取得されます。

            <script type="text/javascript" charset="utf-8">
        $(document).ready(function(){
        $('#stock1').on('change', function (){

        var newValue1 = $.getJSON('select2.php', {stockID: $(this).val()}, function(data){
                    var options = '';
                   for (var x = 0; x < data.length; x++) { 
    options += data[x]['priceeach']; 
    }
     $('#priceeach1').text( options);
                });
            });
        });
        </script>

HTML :

Price Each : &pound;<span id="priceeach1"></span>

select2.php :

            <?php include 'connectmysqli.php'; ?>
    <?php
    $id = $_GET['stockID'];
    $sql = 'SELECT * FROM stock WHERE stockID = ' . (int)$id;
    $result = $db->query($sql);

    $json = array();
    while ($row = $result->fetch_assoc()) {
      $json[] = array(
        'priceeach' => $row['priceeach'],
      );
    }
    echo json_encode($json);

    ?>

編集 >> わかりました、最新の編集でコードを更新しました。これで動作します.....奇妙な問題は別として......リストの最初または最後の項目を選択すると、価格は表示されません。間にあるものは何でも問題なく表示されます........

4

4 に答える 4

0

これを試して、

   var options = [];
   for (var x = 0; x < data.length; x++) {
          options = data[x]['priceeach'];
   }
   $('#priceeach1').text(options.join(','));
于 2013-07-01T12:09:57.650 に答える
0

このようにして、価格を配列に格納する必要がありますoptions[]optionjoin

<script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
    $('#stock').on('change', function (){

    var newValue1 = $.getJSON('select2.php', {stockID: $(this).val()}, function(data){
                var options = '';
                for (var x = 0; x < data.length; x++) {
                    options[x] = data[x]['priceeach'];
                }
                $('#priceeach1').text(options.join(','));
            });
        });
    });
    </script>
于 2013-07-01T12:15:53.867 に答える