2014-10-08 3 views
0

У меня есть таблица, чья точка зрения что-то вроде этогопоказать окно подтверждения перед удалением строки таблицы

ID NAME LOCATION DELETE 
1 sam US  delete 

У меня есть заявление из таблицы, которая удаляет данной строку

echo "<td><a href=\"delete_members.php?id=".$row['id']."\">Delete</a></td>"; 

Он перенаправляется на страницу delete_members.php, и строка удаляется, однако я хочу отобразить окно предупреждения, которое гарантирует, что пользователь хочет удалить строку или нет. для этого у меня есть код

<button onclick="myFunction()">Delete</button> 

<script> 
function myFunction() { 
    var x; 
    if (confirm("Press a button!") == true) { 
     window.location="yourphppage.php"; // not sure which link should be placed here 
     return true; 
    } else { 
     window.location="index.php"; 
     return true; 
    } 
    document.getElementById("demo").innerHTML = x; 
} 
</script> 

код для delete_members.php страницы

<?php 
include('admin_session.php'); 
$con=mysqli_connect("abc.com","abc","abc","abc"); 
// Check connection 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$id = $_GET['id']; 

mysqli_query($con,"DELETE FROM members WHERE id='".$id."'"); 
mysqli_close($con); 
header("Location: admin_member_list.php"); 
?> 

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

+0

Итак, вы хотите, чтобы пользователь видел диалоговое окно подтверждения каждый раз, когда он нажимает на ссылку, которая удаляет конкретную строку ? С какой кнопкой вы ассоциировали эту функцию onclick? –

+0

@ Vivek Pradhan да, я хочу удалить определенную строку, нажав на delete (я не использовал кнопку, я сделал ссылку), но до этого окно подтверждения должно отображаться – user3774056

+0

действительно ли значение $ id имеет значение? Что произойдет, если вы просто эхо "DELETE FROM members WHERE id = '". $ Id. "'"? Кроме того, добавьте функцию die(), чтобы проверить наличие ошибок: mysqli_query ($ con, "DELETE FROM members WHERE id = '". $ Id. "'") Или die (mysqli_error ($ con)); И удалите заголовок() тоже, на всякий случай, если вы пропустите предупреждения или ошибки –

ответ

2

В наиболее простой способ:

echo "<a onclick=\"return confirm('Delete this record?')\" href=\"delete_members.php?id=".$row['id']."\">delete</a>"; 

вы также можете сделать это в ненавязчивой манере, добавляя класс к ссылкам и выбрать их все сразу, используя что-то вроде jQuery, а затем привязать логику подтверждения к событию onclick. Что-то вроде этого:

$('a.delete').on('click', function() { 
    var choice = confirm('Do you really want to delete this record?'); 
    if(choice === true) { 
     return true; 
    } 
    return false; 
}); 
+0

Я пробовал ваш код, но он не работал и также изменил положение ссылки удаления. он не отображается, где он раньше делал – user3774056

+0

, можете ли вы показать HTML, который отображается в PHP? Есть ли у вас механизм проверки HTML, который может проверять достоверность документа? –

+0

Я пропустил '' в своем примере. Вы должны добавить его снова, вероятно ... –

0
echo "<a href='delete_members.php?id={$row['id']}' onclick=\"return confirm('Do you really want to delete this?')\">DELETE</a>"; 
+0

вы получите html markup error –

+0

okay, отредактировал сообщение. Не добавил кавычки. : P –

0

Вы можете попробовать это. Надеюсь, это сработает для вас.

Добавить класс 'delete' для привязки тега.

echo "<td><a href=\"delete_members.php?id=".$row['id']."\" class=\"delete\">Delete</a></td>"; 

Затем связать функции удаления:

$('.delete').on('click', myFunction); 
+0

Я получаю сообщение об ошибке: Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_ENCAPSED_AND_WHITESPACE – user3774056

+0

Отредактировано мое сообщение. Теперь это не даст синтаксической ошибки. –

0

Я думаю, что это будет полезно, пожалуйста, посмотрите на эту

$ ID = $ строки [ 'ид'];

Если вы хотите передать идентификатор вы можете использовать $ ID, или просто вызвать функцию без PARAMS

echo "<a href='#' onclick='deletemember($id)'>Delete</a>"; 

<script> 

    function deletemember(id) 
     { 
       var r = confirm("Are you sure you want to delete"); 
       if(r == true) 
       { 
        $.ajax({ 
           type:"GET", 
           url:"delete_members.php", 
           data: ({id:id}), 
           success: function(data) 
           { 
            window.location="yourphppage.php"; 
           } 
         }); 

       } 
       else 
       { 
        window.location="index.php";   
       } 
    } 

</script> 
+0

не удаляет строку – user3774056

+0

Да, я не писал логику удаления. Я только что написал сообщение с уведомлением о подтверждении..ok. На какой странице вы пишете запрос, чтобы удалить член. Отправьте запрос ajax на эту страницу. Если вы не понимаю, скажите мне, я объясню четко. – Choco

+0

Я отредактировал мой код, пожалуйста, проверьте это. Вам нужно добавить версию jquery, не забывайте, что – Choco

Смежные вопросы