2014-04-12 32 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 
     } 
    }); 
}