-2

onchangeメソッドselect optionを xmlhttprequestで実装したい(私の場合、 jquery の使用は禁止されています)。

これが私のselect optionコードです:

<tr><td>
<form name="group" id="form1">
  <select name="group" id="group" onchange="member();">
    <option value="" disabled selected>Choose your group..</option>
      <?php foreach ($userGroups['data'] as $groups) {
         echo "<option value=\"".$groups['id']."\">".$groups['name']."</option>";
      }?>
  </select>
</form>
</td></tr>

<tr><td id="fetchmember">
   <!-- I HAVE NO IDEA WHAT CODE THAT I SHOULD WRITE HERE -->
</td></tr>

入力を処理する PHP コード( fetchmember.php)

<?php
  include 'facebookauth.php';

    $groupId = $_GET['group'];
    $groupmember = $facebook->api('/'.$groupId.'/members');
    $membergroup = $groupmember['data'];

    foreach ($membergroup as $membergroups) {
      echo "<li>".$membergroups['name']."</li>";        
    }

?>

選択したグループの 1 つからの配列結果( $membergroup) :

Array ( [0] => 
   Array ( [name] => Oryza NurFa 
           [administrator] => 
           [id] => 1645819602 ) 
        [1] => 
   Array ( [name] => Muhammad Lathif Pambudi 
           [administrator] => 
           [id] => 100000251643877 ) 
        [2] => 
   Array ( [name] => Novantio Bangun 
           [administrator] => 
           [id] => 1152078197 ) 
        [3] => 
   Array ( [name] => Oliver Jordan 
           [administrator] => 
           [id] => 1065251285 ) 
        [4] => 
   Array ( [name] => Fauzan Sandy 
           [administrator] => 
           [id] => 1434833113 ) 
        [5] => 
   Array ( [name] => Arfan Fudyartanto D. N 
           [administrator] => 1 
           [id] => 1708602453 ) )

Javascript

<script type="text/javascript">
  function member(str)
  {
    if (str==0)
    { 
      document.getElementById("fetchmember").innerHTML="";
      return;
    }
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
        document.getElementById("fetchmember").innerHTML=xmlhttp.responseText;
      }
    }
  xmlhttp.open("GET","fetchmember.php?group="+str,true);
  xmlhttp.send();
  }
</script>

取得するデータは配列です。selectオプションが変更されるたびに ( onchange)、スクリプトが をロードしfetchmember.php$membergroups['name'](選択した Facebook グループのメンバーの名前) を自動的に出力するようにします。配列データを直接取得することはできますか? 配列を に変換する必要があると思いますXML/JSON。その方法がわかりません。私のコードには、php、html、js のいずれであっても、まだ多くの欠陥があることを知っています。

助けてください。アドバイスをいただければ幸いです。ありがとうございました

4

2 に答える 2

0

jqueryでやるだけ。

jQuery("#fetchmember").empty();
jQuery.each(data, function(i, item) {
    jQuery("#fetchmember").append("someHTML");
});
于 2013-10-31T03:22:21.427 に答える