jQueryを使用してJSON配列からHTML選択メニューを構築するのに役立つ答えがthis questionです。jQuery関数でPHPからJSON配列を読み取る
私のJSON配列は$メニューとしてPHPスクリプトから渡され、次のようになります。
{ "options": [
{ "id":"7","name":"Smith, John"},
{ "id":"4","name":"Jones, Tom"}
]
}
まず、私は私の選択メニューの骨格を構築し、ページに挿入:
var div = '<div class="row">';
var label = '<label for="employee">Employee</label>';
var select = '<select name="employee id="employee">';
var close = '</select></div>';
var menu = div + label + select + close;
$('#clicked_link').prepend(menu);
それから私はこのようにjQueryのに$メニューの配列を渡ししよう:
var json = '<?php echo $menu; ?>';
その後、私はトンにオプションを追加しよう
var options = eval('(' + json + ')');
var length = options.length;
for (var j = 0; j < length; j++)
{
var newOption = $('<option/>');
newOption.attr('id', options[j].id);
newOption.attr('name', options[h].name);
$('#employee').append(newOption);
}
選択メニューが期待通りまで見せているが、それは何のオプションが含まれていません:彼は、新たにlinked questionからの例を使用して、選択メニューを作成しました。誰が私のエラーをどこに見ているのですか?前もって感謝します。ロケットのソリューションを組み込むために改訂
:
var json = <?php echo $menu; ?>;
var options = json.options;
var length = options.length;
for (var j = 0; j < length; j++)
{
var newOption = $('<option/>');
newOption.attr('value', options[j].id);
newOption.attr('text', options[j].name);
$('#employee').append(newOption);
}
お返事ありがとうございます。私はあなたのソリューションを実装しましたが、同じ結果(空の選択メニュー)を取得しています。私は私のquesitonに更新版を掲載しました。おそらく私のループで何か間違っているのでしょうか? – cantera
@ cantera25:あなたのループには、 'options [h] .list'があります。 'h'とは何ですか?また、 'options'オブジェクトに' list'プロパティもありません。 –
入手しました - [h]はリンクされた質問の受け入れられた回答のタイプミスで、私はそれが正しいと仮定しました。私は今それを編集に行くでしょう。それを[j]に変更し、ループ内の「テキスト」と「値」に切り替えることがそのトリックでした。もう一度すべてに感謝します。 – cantera