2014-02-10 74 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); 
       } 

      } 


?> 

SAME PHP頁面我的形式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 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(); 
     } 
    }); 
}; 

另外,我有AJAX驗證,當我發送表單驗證工作,但SubmitForm沒有工作。有一個

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

有這個錯誤,但形式值添加數據庫。

回答

1

試試這個

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

你需要爲你JSON格式將數據發送到提PHP文件這個頭。

+0

這是很好的做法,但不是問題。 JavaScript('dataType:'json',')表示忽略內容類型頭文件並將其處理爲JSON。 – Quentin

0

檢查php的json_encode是否正確地完成這項工作(張貼一個響應的例子會有幫助)。 Tha可能不是這樣,但我的第一個猜測是你的JSON響應並沒有將你發回的HTML字符串用引號括起來。事情是這樣的:

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

當它應該是

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