PHP, а кнопка «Удалить» с окном подтверждения JS? - PullRequest
0 голосов
/ 03 августа 2011

У меня на странице запущен скрипт while, я хочу добавить кнопку удаления для каждого результата, но перед тем, как они смогут удалить, я хочу, чтобы всплывающее окно javascript выскакивало, спрашивая их, действительно ли они хотят его удалить. Просто спрашиваю, как лучше всего это сделать? (Я буду запускать функцию удаления, используя Ajax , потому что я не хочу уходить со страницы после удаления).

Вот код, который я использую, пока все работает - результаты отображаются, и кнопки удаления появляются в окне подтверждения. И теперь я застрял.

Всплывающие:

<script type="text/javascript">
 window.show_confirm = function() {
var r = confirm("Are you sure you want to delete?");
if (r == true) {
    alert(" I NEED TO DO SOMETHING HERE? ");
} else {
    alert("The item won't be deleted.");
}
}
</script>

PHP Пока:

<?php 
while ($row_apps = mysql_fetch_array($result_apps))
{
    if ( ($row_apps['type'] == 'ar') && ($row_apps['client'] == NULL) ) {
echo '<center>
<div id="tab_listing">
<table width="248" border="0" cellspacing="10px" cellpadding="0px">
  <tr>
    <td width="100%" colspan="3"><div class="tab_listing_header">'.$row_apps['app_name'].'</div></td>
  </tr>
  <tr>
  <td class="tab_listing_values"><b>App ID: </b>'.$row_apps['app_id'].'</td>
    <td class="tab_listing_values"><b>Users: </b>'.$row_apps['users'].'</td>
  </tr>
</table>
<div id="edit">Edit</div>
<a href="#" onclick="return show_confirm()"><div id="delete"></div></a>
</div>
</center><br>';
} 
}
?>

Если кто-то может предложить способ сделать это, будьте благодарны:)

1 Ответ

1 голос
/ 03 августа 2011

Во-первых, вы не должны использовать один и тот же идентификатор в цикле!Если у вас есть несколько элементов, используйте класс!Но также может быть полезно иметь идентификатор, поэтому свяжите его с уникальным элементом вашего вывода:

<div id="_<?php echo $row_apps['app_id']; ?>" class="tab_listing">

Для ссылки на запись, которую вы хотите удалить, вы должны передать что-то вроде идентификаторак функции удаления, например

<a href="#" onclick="return show_confirm(<?php echo $row_apps['app_id']; ?>)"><div id="delete"></div></a>

Так что скрипт должен выглядеть следующим образом:

<script>
 window.show_confirm = function(id) { //notice the passed in parameter
var r = confirm("Are you sure you want to delete?");
if (r == true) {
    alert(" I NEED TO DO SOMETHING HERE? ");
    //now do an ajax-request with the id you want to delete
    //after the request, do something with the div ('_'+id), 
    //e.g. hide or add a text.
    //with jQuery it's 1 line of code:
    // $.post('delete.php', {'id':id}, function(data){$('#_'+id).html('Deleted!')});
} else {
    alert("The item won't be deleted.");
}
}
</script>

Для AJAX я рекомендую использовать jQuery - это сэкономит вам многоработа!

И delete.php может выглядеть примерно так:

<?php

if(isset($_POST['id'])) {
  $id = $_POST['id'];
  //do something with the id...
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...