2014-04-12 69 views
0

我有數據庫記錄是循環回聲,所以它在Div中列出了每條記錄的信息。將PHP變量傳遞給ajax並根據該變量運行PHP函數

我想做一個刪除按鈕,從此頁面視圖中刪除特定的記錄。循環數跟蹤器變量$ i也對應於記錄ID,因此循環3輸出包含記錄ID 3的信息的div。

所以我只需要點擊傳遞$ i到PHP函數,然後運行sql刪除ID $ i的記錄。

我想這樣做所有在同一頁上,所以我假設我需要ajax,但那是我被困住。另外,所以我可以有一個提醒「你確定」我已經做了jQuery jQuery的ajax到PHP,但從來沒有這樣。

PHP:

   $webserver = 'localhost'; 
       $administrator = 'root'; 
       $password = ''; 
       $db_name = 'cdb'; 
       $db = mysqli_connect($webserver, $administrator, $password, $db_name) 
        or die('Error connecting'); 

       if(isset($_REQUEST['page'])) 
       { 
        $_SESSION['page'] = $_REQUEST['page']; 
       } 
       else 
       { 
        $_SESSION['page'] = 1; 
       } 
       $records_per_page = 8;    

        $query = " SELECT * 
           FROM cars, users 
           WHERE cars.dealerID = users.dealerID 
           AND users.username = '".$_GET['username']."'";   

       $result = mysqli_query($db, $query) 
        or die("Error in query: '$query'"); 
       $row = mysqli_fetch_assoc($result); 
       $i = 1; 
       $start = ($_SESSION['page'] - 1) * $records_per_page; 
       $end = ($_SESSION['page']) * $records_per_page; 
       while($row = mysqli_fetch_assoc($result) and $i < $end) 
       { 
        $i++; 
        if($i > $start) 
        { 
           <div> 
            delete 
           </div> 
           <div of magic n' fairies> 
            echo $row['informationandstuff']; 
           </div> 
           } 
          } 

刪除功能:

function deleteCar() 
{ 
$delete = "DELETE FROM cars 
WHERE carindex = '".$i"'"; 
} 

我可以$帖子發到另一個文件,做BT希望保持到同一頁,並允許在你確定JS彈出。

+1

請分享你的'form','js' ,以及與該問題相關的'php'代碼。 – vee

+0

@vee它會很混亂,99.9%無關緊要,我的第一個問題涵蓋了所有內容,但還可以。 – Vereonix

回答

0

如果我正確理解你,一種方法是將$ i變量存儲在html數據屬性或id中(如你所建議的那樣)。然後,使用jquery收集該id並將其傳遞給ajax調用中的data屬性。

樣品列表項(我在這裏假設定界符):

<div class="list-item" data-record-id="{$yourId}">your output</div> 

現在,收集用戶點擊ID:

$('.list-item').click(function(){ 
    //get item id 
    var recordId = $(this).data('record-id'); 
    deleteRecord(recordId); 
}); 

function deleteRecord(recordId) { 
    var recordData = 'recordId=' + recordId; 
    var request = $.ajax({ 
     type: "post", 
     url: "the-php-page-you-use-for-async-calls", 
     data: recordData, 
     success: function(resp){ 
      //show some validation that the record has been deleted 
     } 
    }); 
}