Как написать окно предупреждения JavaScript, чтобы ответить на вопрос «да» или «нет» и интегрироваться с вызовами php? - PullRequest
0 голосов
/ 24 июня 2009

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

интересно, как это можно сделать

спасибо

пс:

это то, что я сделал, и это не сработало.

<script type="text/javascript">
if(window.confirm("Are you sure you want to delete that record?")) { 
<?php
mysql_query("delete from tbl_payments where id = '$id'") or die(mysql_error());
header("Location: dashboard.php");
?>
}
</script>

1 Ответ

11 голосов
/ 24 июня 2009
if (window.confirm("Are you sure?")) {
  // call php code here, either through going to a new page,
  // or by doing an ajax request
}

Для вашего обновления: Проблема в том, что код PHP выполняется сервером, который не запускает Javascript, и Javascript запускается на стороне клиента, без знания кода PHP .

Это означает, что код PHP будет всегда выполняться, просто игнорируя вызов window.prompt, поскольку он не является частью PHP. Javascript, который выполняется клиентом, выглядит просто так:

<script type="text/javascript">
if(window.confirm("Are you sure you want to delete that record?")) { 
}
</script>

Что, очевидно, ничего не делает, если бы вы даже достигли этой страницы, потому что вы отправляете пользователя на новую страницу с помощью заголовка Location.

Что вам нужно сделать, это поместить код PHP, который вы написали, на вторую страницу и перевести клиента на эту страницу только после запуска window.confirm (). Примерно так:

file1.php

<script type="text/javascript">
if(window.confirm("Are you sure you want to delete that record?")) {
  document.location = "file2.php?id=<?php echo $_GET['id'] ?>";
}
</script>

file2.php

<?php
$id = $_GET['id'];
if (!is_numeric($id)) $id = -1;
mysql_query("delete from tbl_payments where id = '$id'") or die(mysql_error());
header("Location: dashboard.php");
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...