2013-10-17 17 views
-2

負載數據我想要實現我onchange方法在我select option使用XMLHttpRequest(在我的情況下,jQuery是禁止使用)。的XMLHttpRequest - 從PHP(數組)

這是我的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代碼從所選擇的組$membergroup)中的一個處理輸入(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>";   
    } 

?> 

陣列結果:

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中。

請幫忙。任何建議將不勝感激。謝謝

+0

爲什麼沒有jQuery或任何Ajax庫?如果你的web代碼應該在ie5中工作,你應該使用後端瀏覽器檢測工具,並控制現代瀏覽器和傳統瀏覽器的視圖。在現代瀏覽器視圖中使用jquery,並且在傳統瀏覽器視圖中不使用任何前端腳本。遺留的瀏覽器可能不遵循JavaScript標準和json – caoglish

+0

我知道這將是非常容易的jQuery。但我之前說過,在我的情況下,jquery被禁止使用 –

+0

​​

    。嘗試這種方式 –

    回答

    0

    用jQuery只要做到這一點。

    jQuery("#fetchmember").empty(); 
    jQuery.each(data, function(i, item) { 
        jQuery("#fetchmember").append("someHTML"); 
    }); 
    
    1

    試試這個:

    I think you should convert array you return into JSON format. 
    And then after getting this in ajax response. 
    Finally convert it into regular format using javascript function and display into the div. 
    

    -

    感謝

    +0

    非常簡短而甜蜜的解決方案,Anand +1。 – Chandresh

    +0

    謝謝你先生.....! –