Проблема выполнения mysql запроса

Есть задача - после нажатия кнопки вывести prompt , который передаст в переменную значение для удаления записи в mysql. Работает до момента выполнения самого запроса. После вывода сообщения, переменной $a присваивается нужное значение, но не выполняется запрос в базе. В чем может быть проблема?

<form action="Otchet.php" method="post">
<input type="submit" value="Удалить запись" name="but1">
</form>
<?php
    function prompt($prompt_msg){
        echo("<script type='text/javascript'> var answer = prompt('".$prompt_msg."'); </script>");
        $answer = "<script type='text/javascript'> document.write(answer); </script>";
        return($answer);
    }

    //program
    if (!empty($_POST['but1'])){
    $link=mysql_connect("localhost", "root", "") or die ("Error podkl");
    $db=mysql_select_db("r20i", $link) or die ("Error podkl k bd");
    $prompt_msg = "Какую запись удалить?";
    $a = prompt($prompt_msg);
    $result=mysql_query("DELETE FROM r20i.ledenec WHERE id='$a'",$link);
    if ($result!="") {echo "Запись удалена";} else {echo "Ошибка удаления!";};
    mysql_close($link);};

?>

php выполняется только после нажатия на кнопку. Код примерно работает, но всегда выводит "Ошибка удаления!"


Ответы (1 шт):

Автор решения: SwaD

На стороне клиента надо сделать вот такую форму со скрытым полем, в которое будет передано значение из prompt

    function send() {
        document.getElementById('hid').value = prompt('Кого удаляем?')
    }
<form method="get">
    <input type="hidden" id="hid" name="hid" value=""/>
    <input type="submit" value="Отправить" onclick="send()">
</form>

А на сервере делать так:

$a = $_POST['hid'];

Тогда в переменную $a будет подставлено нужное значение, которое и уйдет в SQL запросе.

→ Ссылка