2015-12-15 2 views
-3

Я пытаюсь разработать скрипт для проверки формы, которая будет содержать текстовые входы, выбор, флажки и текстовые поля. Я начал с создания простой формы с одним полем, скриптом jQuery для передачи данных в файл php и php-файл, который берет входы, выполняет проверку и возвращает идентификаторы ввода и сообщение об ошибке.Проверка формы PHP с помощью jQuery Ajax

Это то, что у меня есть до сих пор, и я пытаюсь проверить, передается ли мой вход в файл PHP, повторяя значение.

ФОРМА

<form id="myForm"> 
    <input type="text" name="fname" id="fname"> 
    <input type="submit" name="submit" id="submit" value="Submit Form"> 
</form> 
<div id="response"></div> 

.JS

$(document).ready(function(){ 
    $('#submit').click(function(){ 
    var formInputs = new Array(); 
     formInputs .push($("#myForm").serialize()); 
     $.ajax({ 
      url: 'booking2.php', 
      type: 'POST', 
      data: { 
       'inputs': formInputs, 
      }, 
      success: function(data){ 
       if(data.success){ 

       }else{ 
        var list = "<center><div><p><></i> Errors </p>"; 
        $.each(data.errors, function(){ 
         list += " <div>"+ this.msg + "</div>"; 
        }); 
        list += "</div></center>" 

        $('#response').html(list).fadeIn(); 
       } 
      }); 
      return false; 
     }); 
    }); 

PHP

<?php 
    $data = array(
     'success' => false, 
     'errors' => array() 
    ); 


    if (isset($_POST['inputs'])) { 
     $inputs = $_POST['inputs']; 
     foreach ($inputs as $input) { 
      $id = $input['id']; 
      $value = $input['value']; 
      switch($id) { 


      case "fname": 
       if (strlen($value) < 6){$msg = "Your " . str_replace("-", " ", ucfirst($id)) . " must be at least 6 characters in length";}else{$msg = "";} 
      break; 


      } 

      if (!empty($msg)) { 
      $data['errors'][] = array(
       'msg' => $msg, 
       'field' => $id 
      ); 
      } 
     } 
} 


    if (empty($data['errors'])) { 
      $data['success'] = true; 
     } 

    } else { 
     $data['errors'][] = "Data missing"; 
    } 
    header("Content-Type: application/json; charset=UTF-8"); 
    echo json_encode((object)$data); 
?> 

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

+3

Я думаю, что это должно было быть '$ _POST [ 'имя_файла'] '.. У вас есть один дополнительный' n' в 'fname' .. Это опечатка ?? –

+2

По умолчанию действие кнопки 'submit' представляет собой отправку формы обычным способом. Вам нужно предотвратить действие отправки формы с помощью 'event.preventDefault();' – Rayon

+0

@GuruprasadRao Ahh да, это была опечатка в моем коде. Я удалил лишний «n», но форма все еще не публикуется. – John

ответ

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