Как остановить PHP скрипт и спросить пользователя да или нет

Поскольку PHP-сценарии не сохраняют состояние, есть ли способ остановить сценарий и задать пользователю важный вопрос?
Я имею дело с вопросом пользователя, когда я хочу удалить запись из БД, используя delete.php

мой пример кода ниже

<?php
if(isset($_GET['id']) && ctype_digit($_GET['id'])) {
$id=$_GET['id'];
}
else header('Location: select.php');

include 'dbconn.php';
$sql = "DELETE FROM users WHERE id='$id'";
echo "Are you sure?";
$del=false;
echo "<a href='$del=true'>yes</a> <a href='$del=false'>no</a>";
if($del) $result = mysqli_query($conn,$sql);
mysqli_close($conn);
header('Location: select.php');

0

Решение

Ты пробовал вот так …..

<?php
if(isset($_GET['id']) && ctype_digit($_GET['id'])) {
$id=$_GET['id'];
}
else header('Location: select.php');

include 'dbconn.php';
$sql = "DELETE FROM users WHERE id='$id'";

print "<script> var delete= window.confirm('are you sure to delete?')</script>";
?>
<script>
if(delete==true){
<?php
//your php code for if block
//for your problem code can be
$result = mysqli_query($conn,$sql);
mysqli_close($conn);
header('Location: select.php');

?>
}
else{
<?php
//your php code for else block
?>
}
</script>
0

Другие решения

Предложения по использованию JavaScript хороши, но знайте, что это не единственный выбор.

Вот рабочий процесс, который может работать для вас, который использует только PHP и разные запросы страниц для каждого действия.

/users.php?id=5

<h1>Viewing <?php $_GET['id'] ?></h1>
...
<a href="/users.php?id=5&action=edit">Edit this user</a>

/users.php?id=5&Действие = редактировать

<h1>Editing <?php $_GET['id'] ?></h1>
...
<a href="/users.php?id=5">Cancel edits</a>
<a href="/users.php?id=5&action=save">Save changes</a>
<a href="/users.php?id=5&action=deleteConfirmation">Delete this user</a>

/users.php?id=5&действие = deleteConfirmation

<h1>Are you sure you want to delete <?php echo $_GET['id'] ?></h1>
<a href="/users.php?id=5">Cancel</a>
<a href="/users.php?id=5&action=delete">Confirm</a>

/users.php?id=5&Действие = Удалить

$sql = "DELETE FROM users ..."mysqli_query($sql) ...
header('Location: /users.php?action=deleteSuccessful');

users.php может выглядеть примерно так (псевдокод)

switch ($_GET['action']) {
case 'edit':
<h1>Editing using...</h1>
<form> ...
break;
case 'save':
mysqli_query('UPDATE USERS SET ...');
header('Location: ...');
break;
case 'deleteConfirmation':
<h1>Are you sure you want to delete user 5</h1>
<form> ...;
break;
case 'delete':
mysqli_query('DELETE FROM USERS ...');
header('Location: ...');
break;
default:
<h1>Viewing User 5</h1>
...
break;
}

Испытанные в битве CRUDs

Вы можете посмотреть в RESTful API. Существуют соглашения для настройки ресурса для URL-адреса и последующего использования различных HTTP-глаголов для взаимодействия с ресурсом.

Вот основной ускоренный курс для теоретического пользователь ресурс

http     url              description
GET      /users           display all users
POST     /users           create a new user
GET      /users/1         display user with id: 1
GET      /users/1/edit    display the edit user page
PUT      /users/1         replace all the fields for user id: 1
PATCH    /users/1         update 1 or more fields for user id: 1
DELETE   /users/1         remove user with id: 1
3

Вы можете использовать JavaScript. Либо вставьте код в функцию, либо используйте jQuery.

1.Inline:

<a href="deletelink" onclick="return confirm('Are you sure?')">Delete</a>

2. В функции:

<a href="deletelink" onclick="return checkDelete()">Delete</a>

Код сценария

<script language="JavaScript" type="text/javascript">
function checkDelete(){
if(confirm('Are you sure?'))
{
alert("You clicked YES");
}
else
{
alert("You clicked NO");
}
}
</script>

3. С помощью jQuery:

<a href="deletelink" class="delete">Delete</a>

Код скрипта:

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script language="JavaScript" type="text/javascript">
$(document).ready(function(){
$("a.delete").click(function(e){
if(confirm('Are you sure?'))
{
alert("You clicked YES");
return true;
}
else
{
alert("You clicked NO");
return false;
}

});
});
</script>
1
По вопросам рекламы [email protected]