2015-07-09 4 views
1

Я хотел бы сделать ввод формы для пользователей, попросить пользователя подтвердить и показать им свой выбор, а затем отправить форму на сервер только после того, как они подтвердят. Я не действительно Конечно, как это сделать? Спасибо, Вот мой код до сих пор:подтвердить ввод пользователя и показать результат, а затем отправить форму

<form id="myform" action="form.php" method="post"> 
    <?php 
     echo "<ul>"; 

     foreach($dir as $item) { 
      $items = basename($item); 
      $str = str_replace("+", " ", $items); 
      if (strpos($str, 'test') === false) { 
       if (strlen($str) == 3) { 
        $strs = ucwords(strtoupper($str)); 
        echo "<li><label><input type = 'checkbox' class='check-class' name='chk[]' id='strs[]' value=$items>$strs</label></li>"; 
       } else { 
        $strs = ucwords($str); 
        echo "<li><label><input type='checkbox' class='check-class' name='chk[]' id='strs[]' value=$items>$strs</label></li>"; 
       } 
      } 
     } 

     echo "</ul>"; 
    ?> 

    <div style="text-align:center"> 
     <input type="submit" style="font-face:'Comic Sams MS';font-size:larger;color:red;background-color:#FAF0E6;border:3pt ridge lightgrey;" value="Click to Submit"> 
    </div> 
</form> 

<div id="success"></div> 

<script type="text/javascript"> 
    $(function() { 
     $('#myform').submit(function() { 
      $.ajax({ 
       data: $(this).serialize(), 
       type: $(this).attr('method'), 
       url: $(this).attr('action'), 
       success: function(data) { 
        $('#success').html(data); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 

form.php

<html> 
<table> 
<?php 


     #$b = str_replace("+"," ",$_POST['chk']); 
    #echo "<script type='text/javascript'> test() </script>"; 
    echo "You have selected these Folders"; 


    foreach($_POST['chk'] as $val) 
    { echo "<tr>"; 
     echo "<td>"; 
     echo str_replace("+"," ",$val); 
     echo "<tr>"; 
     echo "</td>"; 
    } 

?> 
</table>  
</html> 
+0

У вас есть код для отображения на 'form.php'? – SerCrAsH

+0

вы можете хранить данные формы в переменной сеанса для подтверждения клиента и уничтожать их после подтверждения клиентов. –

+0

Я добавил файл form.php – mina

ответ

1

Самый простой способ заключается в использовании window.confirm.

$('#myform').submit(function() { 
    var selectedItemsText = ''; 
    $(this).find('input[type="checkbox"]:checked').each(function(){ 
     selectedItemsText += $(this).val() +'\r'; 
    }); 

    if(confirm('Are you sure? You've selected:\r'+selectedItemsText)){ 
     $.ajax({ 
      data: $(this).serialize(), 
      type: $(this).attr('method'), 
      url: $(this).attr('action'), 
      success: function(data) { 
       $('#success').html(data); 
      } 
     }); 
    } 
    return false; 
}); 

Check out this Fiddle. я опустил AJAX по понятным причинам.

Есть более приятные способы сделать это. Например, вы можете использовать jQuery UI Dialog (или эквивалент). Но для быстрых, грязных, простых решений - просто используйте confirm.

+0

Спасибо @ DaveSolomon, это работает, но могу ли я вызвать form.php в код подтверждения? – mina

+0

Да - вот что должно было сделать выше :). 'confirm()' возвращает логическое значение - true или false. Поэтому 'if (confirm ('abc?')) {Success} else {failure}' будет идти в «успех», если пользователь говорит «да» или «сбой», если пользователь не выбирает/отменяет. –

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