отправить форму с флажком без обновления страницы - PullRequest
1 голос
/ 29 ноября 2010

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

и мои цели:

послефлажок проверен, отправьте форму с молчанием и затем скрыв

<div id="question1"><!--the form here--></div>

и покажите разделы

<div id="question2" style="<?php echo ($agree) ? 'display:block;' : 'display:none;' ?>"><!--some fields here--></div>

существующих случаев: У меня есть следующая форма, которая, кажется, не будет работать,

<div id="question1">
<form action="<?php echo $submit); ?>" method="post" id="question"  onsubmit="processForm();return false;">
<!--some rows here -->



            <?php if ($quote['id'] == $color || !$color) { ?>
            <?php $color = $quote['id']; ?>
            <input type="radio" name="prefer_color" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" checked="checked" style="margin: 0px;" />
            <?php } else { ?>
            <input type="radio" name="prefer_color" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" style="margin: 0px;" />
            <?php } ?>

      <?php foreach ($prefer_places as $prefer_place) { ?>
      <tr>
        <td width="1">
          <?php if ($prefer_place['id'] == $place || !$place) { ?>
          <?php $place= $prefer_place['id']; ?>
          <input type="radio" name="prefer_place" value="<?php echo $prefer_place['id']; ?>" id="<?php echo $prefer_place['id']; ?>" checked="checked" style="margin: 0px;" />
          <?php } else { ?>
          <input type="radio" name="prefer_place" value="<?php echo $prefer_place['id']; ?>" id="<?php echo $prefer_place['id']; ?>" style="margin: 0px;" />
          <?php } ?></td>
      </tr>
      <?php } ?>

<?php if ($agree) { ?>
<input type="checkbox" name="agree" value="1" checked="checked" onchange="if(this.checked)  this.form.processForm() ? $('#question2').css('display','block') : $('#question2').css('display','none');" id="agree" /><label for="agree">Agree</label>
<?php } else { ?>
<input type="checkbox" name="agree" value="1" onclick="if(this.checked) this.form.processForm() ? $('#question2').css('display','block') : $('#question2').css('display','none');" id="agree" /><label for="agree">Agree</label>
<?php } ?>
</form>
</div>

<div id="question2" style="<?php echo ($agree) ? 'display:block;' : 'display:none;' ?>">
<!--some fields here-->
</div>

с этим кодом, после того, как флажок проверил отправленную форму, но и перенаправил на другую страницу.

Мне нужно немногопомощь и указатели, которые я был бы признателен.

Спасибо большое.

Обновлено,

Следуя вашим инструкциям с использованием Ajax для обработки этого,так что я пробую, как выглядит Ajax:

<script type="text/javascript">
function processForm() { 
        $.ajax( {
            type: 'POST',
            url: 'index.php?p=form/questions_steps',
           data: 'prefer_color=' + encodeURIComponent(document.getElementById('input[name=\'<?php echo $quote['id']; ?>\']:checked').value) ? document.getElementById('input[name=\'<?php echo $quote['id']; ?>\']:checked').value : '') + '&prefer_color=' + encodeURIComponent(document.getElementById('input[name=\'<?php echo $prefer_color['id']; ?>\']:checked').value) ? document.getElementById('input[name=\'<?php echo $prefer_color['id']; ?>\']:checked').value : '') + '&comment=' + encodeURIComponent(document.getElementById('textarea=[name=\'comment\']').value) + '&agree=' + encodeURIComponent(document.getElementById('input[name=\'agree\']:checked').value) ? document.getElementById('input[name=\'agree\']:checked').value : ''),
            success: function(data) {
                $('#message').html(data);
            }
        } );
}
</script>

Ответы [ 3 ]

3 голосов
/ 29 ноября 2010

Как ваше требование, вы должны использовать AJAX для отправки формы без обновления страницы.Это очень простой способ отправки формы в автоматическом режиме.

Спасибо.

2 голосов
/ 29 ноября 2010

Вы можете использовать функцию ajax JQuery, например:

$.ajax({
   url: "page.php",       
   type: "GET",
   data: (id : "123")
 });

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

1 голос
/ 29 ноября 2010

Используйте Jquery.Это быстро и просто.

Если взаимодействие с базой данных не требуется, просто используйте javascrit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...