0

コンボボックスを埋めるために ajax 関数を使用しています。このような ajax コードがあります。

$(document).ready(function() {

    alert();

  $.ajax({

    url:'Stations.php',
    type:'POST',
  //  data: 'q=' + str, 
    dataType: 'json',
    success: function( json ) {
        $.each(json, function(i, value) {                
                  .append($('<option></option>', {text:value})
                  .attr('value', text));
        });
    }
  });
});

私のphpコードはこのようなものです。

function getStationList()
{
    $db = new DBManager();
    $mysqli = $db->db_connect();

    $query = "SELECT name FROM car";

    $stmt = $mysqli->prepare($query);
    $stmt->execute();
    $result = $stmt->get_result();

    $list = array();

    while($row = $result->fetch_assoc())
    {
        $list[] = $row['name'];
    }

    return json_encode($list);
}

PHPコードをコンパイルすると、次のような出力が得られます。

[「車1」、「車2」、「車3」]

この car1、car2、car3 を自分のボックスに送信したいのですが、html コードは次のとおりです。

<div class="content" data-role="content" id="content" >
         <div id="car">
            <select name="selectSt" class="span12" id="selectSt" > 
            <option></option>
            <option></option>
            <option></option>
            </select>                                         
         </div>
         <div id="cinfo"></div>
        <button onclick="javascript:callCarInfo.call(this,document.getElementById('selectSt').value);">Call Podcar</button>
</div>

      <div class="footer" data-role="footer"><h1>IYTE PRT&copy;</h1></div>
   </div>

この option>/option> に car1 car2 と car3 の値を入力できませんでした..

4

3 に答える 3

1

まず第一に、私があなたの靴のどこにいるとしたら、パフォーマンスの問題のために使用appendしませんeach

attribute_name を変更してください

私は次のことをします

$.ajax({
    url:'Stations.php',
    type:'POST',
    dataType: 'json',
    success: function( json ) {
        var HTML = ""; 

        $.each(json, function(i, value) { 
           console.log("my val is"+value+" my key is"+i); 
           HTML = HTML+"<option>"+value+"</option>"; 
        });
        $('#selectSt').append(HTML); 
    }
  });

これは、パフォーマンスの観点からのベスト プラクティスです。

これが役立つことを願っています:)

于 2013-05-15T22:14:56.307 に答える
1

PHP スクリプト (Sations.php) が ["car1","car2","car3"] のようなデータを返す場合

更新:テキストはループで定義されていません。値である必要があります: http://jsfiddle.net/6PEbe/1/

$.ajax({
    url:'Stations.php',
    type:'POST',
    dataType: 'json',
    success: function( json ) {
        $.each(json, function(i, value) {  
           $('<option></option>', {text:value}).attr('value', value).appendTo('#selectSt');
        });
    }
  });
于 2013-05-15T22:09:36.583 に答える
0

コールバック関数で使用children()して、タグeachを追加します。<option>

$("#selectSt").children().append(valueYouWantToAdd);
于 2013-05-15T22:10:04.303 に答える