2014-02-10 5 views
0
<?php 
    sleep(2); 
    ob_start(); 

    $CategoryName = secure($_POST['cat-name']); 
    ... 

    $humancheck = $_POST['humancheck']; 
     $honeypot = $_POST['honeypot']; 
      if ($honeypot == 'http://' && empty($humancheck)) { 
      $error_message = ''; 
      if (empty($CategoryName)) 
     { 
      $error_message .= "<p>Please Enter Name.</p>";    
     } 


     if (!empty($error_message)) 
     { 
        $return['error'] = true; 
        $return['msg'] = "<h3>Opps Error Here.</h3>".$error_message;      
        echo json_encode($return); 
        exit(); 
     } 

     else { 
        header('Content-type: application/json'); 
        $result = mysql_query("INSERT INTO xxx SET xx = '".$xxx."',xx = '".$xxx."',xxx = '".$xxx."',xxx = '".$xxx."'") or die(mysql_error()); 
        $_SESSION['Info'] = 'Added success'; 

         $return['error'] = false; 
         $return['msg'] = "<p>Wait...</p>"; 
         echo json_encode($return); 
       } 

      } 


?> 

ЖЕ PHP PAGE МОЕЙ ФОРМЫAjax проверка после ошибки

<form role="form" id="add" action="functions.php?type=add" method="post" enctype="multipart/form-data"> 
    <input type="text" class="form-control" name="cat-name"id="cat-name" placeholder="name"> 
     ... 
    <input type="hidden" name="honeypot" id="honeypot" value="http://" />    
    <input type="hidden" name="humancheck" id="humancheck" class="clear" value="" /> 
     <button type="submit" id="submit" class="btn btn-primary" data-loading-text="Loading...">Add</button> 
     <button type="button" onClick="parent.location='kategoriler.php'" class="btn btn-danger">Cancel</button> 
     </form> 

AJAX FUNCTION

function submitForm(formData) { 

    $.ajax({  
     type: 'POST', 
     url: 'functions.php?type=add',  
     data: formData, 
     dataType: 'json', 
     cache: false, 
     timeout: 7000, 
     success: function(data) {   
      $('#response').removeClass().addClass((data.error === true) ? 'alert alert-danger' : 'alert alert-success').html(data.msg).fadeIn('fast'); 
     if ($('#response').hasClass('alert alert-success')) { 
         window.location.href = "kategoriler.php"; 
        } 

     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
     $('#response').removeClass().addClass('error').html('<p>There was an<strong> ' + errorThrown +'</strong> error due to a<strong> ' + textStatus +'</strong> condition.</p>').fadeIn('fast');   
     },    
     complete: function(XMLHttpRequest, status) {    
      $('form')[0].reset(); 
     } 
    }); 
}; 

Кроме того, у меня есть АЯКС проверки, когда я отправить форму проверка работает, но SubmitForm не работает. Был

SyntaxError: Unexpected token < error due to a parser error condition. 

есть эта ошибка, но значения формы добавляют базу данных.

ответ

1

Попробуйте

header('Content-type: application/json'); 

Вы должны отметить этот заголовок в PHP файл, как отправлять данные в формате JSON.

+0

Это хорошая практика, но не проблема. JavaScript ('dataType: 'json',') говорит, что игнорировать заголовок типа контента и обрабатывать его как JSON независимо. – Quentin

0

Проверьте, правильно ли работает json_encode в php's json_encode (отправкой примера ответа будет полезно). Вероятно, это не так, но прежде всего я предполагаю, что ваш ответ JSON и не замалчивается в кавычки строки HTML, которую вы отправляете назад. Что-то вроде этого:

{ 
    error: false, 
    msg: <p>Wait...</p> 
} 

, когда он должен быть

{ 
    error: false, 
    msg: '<p>Wait...</p>' 
} 
Смежные вопросы