-1

ユーザーがボタンを押すかクリックしたときに、html select にデータをロードする際に問題が発生しました。シナリオは次のとおりです。

  1. 動的にボタンを作成するボタンがあります
  2. ユーザーがそのボタンをクリックすると、フォームが表示されます
  3. フォームが表示されると、サーバー側としてphpを使用してデータベースからデータを動的に表示するhtml選択があります。

シナリオ番号3を解決する方法を知っている人はいますか?

jquery を使用して新しいフォームを作成しましたが、データを html select にロードするのは本当に苦痛です。

4

5 に答える 5

0

PHP

このようなもの:

<?php  
$option[] = array('option1'=>'somepage1',
                  'option2'=>'somepage2',
                  'option3'=>'somepage3');

echo json_encode(array('options'=>$option)) //set output to json encode
?> 

JS

$(document).ready(function(){

  $("#create").bind('click',function(){
    $.get('somepage.php',function(data){
      $("#form").show(); //form holder
      $("#select").empty();
      $.each(data.options, function(i,val){
       $("#select").append("<option>"+val.option1+"</option>"
                          +"<option>"+val.option2+"</option>"
                          +"<option>"+val.option3+"</option>");
      });  
    },'json');
    $(this).unbind();
  });
});
于 2012-06-07T08:45:35.657 に答える
0

あなたのJSはこのようなものでなければなりません。

 $('#button').click(function(){
     $('<element to show>').show();
     $('<element to load the data into>').load('my_page.php');
 });

君のmy_page.php

<?php
$data = get_data_from_db();
foreach ($data as $d){
    echo '<option value='+ $d['value'] +'>'+ $d['text'] +'</option>';
}
?>
于 2012-06-05T11:16:38.433 に答える
0

サーバーからhtml(「12 ..」など)を<select>介してオプションを取得する場合、(jqueryを使用):

$.ajax({url:"index.php",
   success:function(data) {
      $("#my_select").html(data);
   }
});

<select>配列のような値 (おそらく json) を介してオプションを取得する場合:

...
<script type="text/javascript"> 
   var values = {option1:{value:"value1",text:"text1"},option2:{value:"value2",text:"text2"},option3:{value:"value3",text:"text3"}};   // lets say these came from server (a json response)
    var d = $("#my_select")[0];
    d.length = 0;
    var c=0;
    for(var x in values) {
       d.options[c++] = new Option(values[x]["text"],values[x]["value"]);
    }
</script>    
于 2012-06-05T07:58:17.567 に答える
0

jquery ajaxを使用できます:

$.ajax({url:'somepage.php'}).done(msg){
    $('#select_id').html(msg);
}

ページ somepage.php で、html を生成してエコーします。

<?
   echo '<option>something</option>';
?>

それで全部です

于 2012-06-05T07:29:10.863 に答える
0

このAJAXのようなものを試してください:

$.post("yourPHP.php", {toSend: whatever}, function(data){
vOutput="<select>";
for(var i=0;i<data.length;i++){
    vOutput+="<opiton>"+data[i]+"</option>";
}
vOutput+="</select>"
$("#yourdiv").html(vOutput);
},'json')
于 2012-06-05T07:47:55.293 に答える