Отменить переменные php перед отправкой формы (публикацией) с помощью jQuery

У меня есть две переменные $get_book_id и $_GET['book_id'] и форма для публикации некоторых других данных. Когда нажата кнопка отправки, я хочу очистить две вышеуказанные переменные и опубликовать оставшиеся значения, используя сообщение формы.

Код jquery выглядит так.

index.php

    $('#submit_button').click(function(){
                $.ajax({
                type: 'POST',
                url: 'empty_variable.php',
                success: function(data) { 
                },
                error: function(ts) { alert(ts.responseText) }
            });
    });

    <form action="process.php" method="post">

            .................

    </form>

пустая_переменная.php

    <?php
    $get_book_id = '';
    $_GET['book_id'] = '';
    ?>

процесс.php

<?php 
echo $_GET['book_id'];
echo $get_book_id;
print_r($_POST);    
?>

Что я хочу сделать, так это очистить две переменные, используя jQuery при отправке формы. Как мне это сделать?
На странице процесса я все еще вижу значения $_GET и $get_book_id.

Пожалуйста, не просите меня очистить значение на странице index.php.

Отменить установку переменных php перед отправкой (публикацией) формы с помощью jQuery

Спасибо

Кимз


person user3350885    schedule 09.04.2014    source источник


Ответы (2)


Обновленный ответ, используйте почтовый запрос и установите для переменной значение пустое, если поле пустое:

Измените ввод отправки на кнопку следующим образом: index.php

<script type="text/javascript">
    $(document).ready(function() {
         $('#submit_button').on('click', function(e) {
              $('#book_id').val('');
              $(this).submit();                     
         });
    });                       
</script>
<form id="form_id" action="process.php" method="POST">
    <input id="book_id" name="book_id" type="text" />
    <button id="submit_button">Submit</button>
</form>

процесс.php

if($_POST['book_id'] = '') $get_book_id = $_POST['book_id'];
echo $_POST['book_id'];
echo $get_book_id;
print_r($_POST);
person ifthiselsethat    schedule 09.04.2014
comment
вместо имени, если я хочу передать идентификатор, как мне поступить? $('input[id=book_id]').val(''); ?? Это верно? - person user3350885; 09.04.2014
comment
я получаю сообщение об ошибке после использования вашего кода, так как слишком много рекурсии. Как это решить? - person user3350885; 09.04.2014

попробуй так

 $('#submit_button').click(function(){
            $.ajax({
            type: 'POST',
            data:{"clearBit":"YES"},  //use the data to refresh the specified variables on process.php page
            url: 'empty_variable.php',
            success: function(data) { 
            },
            error: function(ts) { alert(ts.responseText) }
        });
});

Process.php:

 <?php
   if(isset($_POST['clearBit']) && $_POST['clearBit']=='YES')
   {
     $get_book_id = '';
     $_GET['book_id'] = '';
   }    
?>

Удачного кодирования :)

person dreamweiver    schedule 09.04.2014
comment
Не работает. Как я уже сказал, мне нужно очистить/отключить его с помощью jquery ajax, а не с использованием традиционного метода публикации. Есть идеи? - person user3350885; 09.04.2014
comment
Из вашего клиентского скрипта вы никак не можете управлять переменными серверного скрипта. Кстати, что вы подразумеваете под неработающим? приведенный выше код не может сбросить переменные? - person dreamweiver; 09.04.2014
comment
привет, братан, я снова задал вопрос в SOF stackoverflow.com/questions/22954809/ - person user3350885; 09.04.2014