2010-10-05 167 views
1

我剛剛得到幫助,這代碼的jQuery的部分(感謝大衛·托馬斯)需要幫助我做

這是我當前的代碼到目前爲止地址簿的PHP/SQL部分,我想知道我還需要什麼,以便返回結果。

  <div class="toolbar"> 
       <a href="javascript:void(0);" onclick='$("#addC<?=$_SESSION['user_id'];?>").toggle();'><p id="addC20" style="float: left"></p></a> 
       <p style="float: right; position: relative; top: 0px; left: -10px;">Contact Manager</p> 
      </div><!-- end toolbar --> 
      <script> 
       $(document).ready(function(){ 
        $('#names a.names').click(function(){ 
         var thisId = $(this).attr('id'); 
         $('#detailsPane').load('dependencies/ajax/contacts.ajax.php #' + thisId); 
         return false; 
        }) 
       }); 
      </script> 
      <div id="names"> 
       <h3>Contacts</h3> 
       <ul id="post"> 
       <? while($row = mysql_fetch_array($contacts)) ?> 
        <li><a class="names" id="<?=$row['id'];?>"><?=$row['first_name'];?>, <?=$row['last_name'];?></a></li> 
       </ul><!-- end post --> 

      </div><!-- end names --> 

      <div id="detailsPane"> 

      </div> 
      <div class="cushion"></div> 

由此看來,名稱或聯繫人在我的while循環從我的數據庫中抽取,但​​我認爲什麼引起我的邏輯和困惑是如何ajax.php會再從「一個」錨​​搶ID並將其傳遞到我的新輸出中。我需要什麼代碼來格式化我的detailsPane中的數據?

回答

0

我認爲沒有必要做​​與哈希URL部分,而不是一個普通的舊GET參數:

$('#detailsPane').load('dependencies/ajax/contacts.ajax.php?id=' + thisId); 

然後在contacts.ajax.php你會得到它是這樣:

$id = $_GET['id'] ; 

顯然你需要清理和驗證ID,但這不在這個問題的範圍內。

然後,基於該id,contacts.ajax.php應該只是打印出你想在#detailsPane中顯示的任何輸出,並且​​會照顧它。

+0

HURRAY FOR XSS !! – 2010-10-05 22:09:07

+0

雅,我有我的php消毒$ _GET,但我很難過,現在如何將數據從php到detailsPane div。在地址簿中,用戶單擊窗格1中的名稱並將信息加載到窗格2中。 – Eli 2010-10-05 22:31:06

+0

@hopeseekr XSS,如何?這取決於contacts.ajax.php來清理和驗證用戶輸入,並採取相應的行動。如果不符合預期,它可能會打印出一條信息錯誤,並將其放入#detailsPane中,就是這樣。 – Fanis 2010-10-05 22:44:01