2013-03-24 91 views
1

我有一段PHP代碼,它產生一組搜索結果(從Facebook API搜索)。從數組中刪除搜索結果

是否可以包含一個超鏈接/按鈕,單擊該按鈕時,將該項目從數組中移除並刷新以顯示新數組?

我收集我將使用unset()刪除項目。

這裏是我的代碼:

foreach ($search['data'] as $key => $list) { 
    echo "<li><dt>Name:</dt>" . "<dd>" . $list['name'] . "</dd>\n"; 

    $gender = $facebook->api('/'.$list['id']); 
    echo "<dt>Gender:</dt>" . "<dd>".ucfirst($gender['gender'])."</dd>\n"; 
    echo " <a href='fb2.php?fbid=" .$list['id']. "'><img src='https://graph.facebook.com/".$list['id']."/picture?type=normal' /></a>\n"; 
    echo "<a href='remove.php?id= ????? "; 
    echo "</li>"; 
    } 
    echo"</ol>"; 
+1

你收集權,使用未設置() – Axarydax 2013-03-24 19:15:15

+0

大輸入.... – user1765369 2013-03-24 19:21:05

+0

爲了詳細說明,我想知道如何我實際上可以運行代碼。它需要AJAX嗎? – user1765369 2013-03-24 19:31:44

回答

2

我知道你不提JavaScript作爲一個選項,但如果是隻在前端如下我會使用jQuery:

在HTML文件:

<script url="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script> 

<ol id="facebook-tags"> 

<?php 
    foreach ($search['data'] as $key => $list) { 
     echo "<li><dt>Name:</dt>" . "<dd>" . $list['name'] . "</dd>\n"; 
     $gender = $facebook->api('/'.$list['id']); 
     echo "<dt>Gender:</dt>" . "<dd>".ucfirst($gender['gender'])."</dd>\n"; 
     echo " <a href='fb2.php?fbid=" .$list['id']. "'><img src='https://graph.facebook.com/".$list['id']."/picture?type=normal' /></a>\n"; 
     echo "<a class="remove">Remove</a>"; 
     echo "</li>"; 
    } 
?> 

</ol> 

<script> 
    $('#facebook-tags').delegate('a.remove', 'click', function() { 
     $(this).closest('li').remove(); 
    }); 
</script> 
+0

這是處理這個問題的正確方法。 – didierc 2013-03-24 19:55:24

+0

非常有幫助謝謝!有沒有辦法讓它淡出而不是完全消失?顯然不是必需的,但它會更好 – user1765369 2013-03-25 00:53:37

+1

是的:而不是.remove()做.fadeOut()。以下是關於jQuery fadeOut的更多信息:[link](http://api.jquery.com/fadeOut/) – chrislondon 2013-03-25 01:28:05

2

chrislondon給你建議如何在客戶端刪除。 但是,如果你想刪除一些在PHP端,它可以做一些這樣的:

foreach ($search[ 'data' ] as $key => $list) { 
    if($_GET[ 'id' ] == $key){ 
//use unset only if you store $search[ 'data' ] in session or some, to remove it totally from results 
//  unset($search[ 'data' ][ $key ]); 
     continue; 
    } 

    echo "<li><dt>Name:</dt>" . "<dd>" . $list[ 'name' ] . "</dd>\n"; 

    $gender = $facebook -> api('/' . $list[ 'id' ]); 
    echo "<dt>Gender:</dt>" . "<dd>" . ucfirst($gender[ 'gender' ]) . "</dd>\n"; 
    echo "<a href='fb2.php?fbid=" . $list[ 'id' ] . "'> 
     <img src='https://graph.facebook.com/" . $list[ 'id' ] . "/picture?type=normal' /></a>\n"; 
    echo "<a href='remove.php?id=$key "; 
    echo "</li>"; 
} 
echo"</ol>";