2013-02-13 3 views
-3

Так что я эту форму с таблицей на странице PHP:Отправка флажков с JQuery и AJAX

$page .='<form method="POST" action="delete.php" ID="orgForm">'; 
$page .= "<table> \n"; 
$page .= "<tr>\n"; 
//Decides what to display based on logged in. Only if logged in can you see all the contact's info 
$page .= "<th>ID</th> \n <th>First Name</th> \n <th>Last Name</th> \n <th>Phone Number</th> \n <th>Email</th> \n"; 
//Loops through each contact, displaying information in a table according to login status 
$sql2="SELECT cID, firstName, lastName, phoneNum, email FROM Contact WHERE oID=".$_GET['orgID']; 
$result2=mysql_query($sql2, $connection) or die($sql1); 
while($row2 = mysql_fetch_object($result2)) 
{ 
    $page .= "<tr>\n"; 
    $page .= "<td>".$row2->cID."</td>\n"; 
    $page .= "<td>".$row2->firstName."</td>\n"; 
    $page .= "<td>".$row2->lastName."</td>\n"; 
    $page .= "<td>".$row2->phoneNum."</td>\n"; 
    $page .= "<td>".$row2->email."</td>\n"; 
    $page .= '<td><input type="checkbox" name="checkedItem[]" value="'.$row2->cID.'"></input></td>'."\n"; 
    $page .="</tr>"; 
} 
$page .= '<input name="deleteContacts" type="submit" value="Delete Selected Contacts" />'."\n"; 
$page .= "</form>\n"; 

$page .='<script src="assets/js/orgDetails.js" type="text/javascript"></script>'."\n"; 

мне нужно как-то написать сценарий JQuery внутри orgDetails.js, который способен удалить отмеченные строки, когда Я нажимаю кнопку удаления. Изменения должны появиться на экране без обновления, и мне также нужно будет удалить фактическую строку из sql db. Может кто-нибудь, пожалуйста, дайте мне руку? Благодарю.

ответ

1

В URL действия delete.php, после отправить этот пост:

if ($_POST != array()) { 
    foreach ($_POST['checkedItem'] as $id) { 
     mysql_query('delete from Contact where cID='.$id); 
    } 

    echo 'Records deleted.'; 
} 

Если вы не хотите обновления страницы при удалении записей:

Добавить в HTML:

<button class="delete_button">Delete selected records</button> 

Добавить свой js file:

$('.delete_button').click(function() { 
    $form = $('#orgForm'); 

    delete_ids = []; 

    $form.find('input[name=checkedItem]').each(function() { 
     $checkbox = $(this); 

     if ($checkbox.is(':checked')) { 
      delete_ids.push($checkbox.val()); 
     } 
    ); 

    $.ajax({ 
     url: 'delete.php', 
     type: 'post', 
     data: {delete_ids: delete_ids}, 
     success: function (result_html) { alert(result_html); }, 
    }); 
}); 

И в delete.php:

if ($_POST != array()) { 
    foreach ($_POST['delete_ids'] as $id) { 
     mysql_query('delete from Contact where cID='.$id); 
    } 

    echo 'Records deleted.'; 
}