2016-04-23 97 views
1

我試圖找回從php與AJAX Post進行交互的值。 我讀過,我應該使用JSON數據類型,但這是我第一次這樣做,我得到「JSON數據第1行72列JSON數據後的SyntaxError:JSON.parse:意外的非空白字符」。Php with AJAX Post - 返回值JSON

我的AJAX如下:

function apfaddpost() { 
     var fd = new FormData($('#msform')[0]); 
     fd.append("main_image", $('#main_image')[0].files[0]); 
     fd.append("action", 'apf_addpost'); 
     $('#form-container').hide(); 
     $('#processing').show(); 
     var postProject = $.ajax({ 
      type: 'POST', 
      url: apfajax.ajaxurl, 
      data: fd, 
      dataType: 'json', 
      processData: false, 
      contentType: false, 
     }); 

     postProject.done(function(data, textStatus, XMLHttpRequest) { 
       $('#processing').hide(); 
       $('#confirm').show(); 
       //elements where I should display success message and link 
       var success = '#success'; 
       var projectlink = '#projectlink'; 
       jQuery(success).html(''); 
       jQuery(success).append(data.success); 
       $("#projectlink").attr("href", data.projectlink); 
     }); 

     postProject.fail(function(MLHttpRequest, textStatus, errorThrown) { 
       alert(errorThrown); 
     }); 
    } 

我的PHP

if ($pid != 0) 
    { 
     $message = 'Your post has been successfully added!'; 
     $project_link = get_permalink($pid); 
     $result = array('success'=>$message,'projectlink'=>$projectlink); 
     echo json_encode($result); 
    } 
    else { 
     $message = 'Error occurred while adding the post'; 
     $result = array('fail'=>$message); 
     echo json_encode($result); 
    } 

我的HTML,其中應打印這些價值觀是:

<div id="confirm" class="row" style="display:none"> 
     <div class="col-sm-12"> 
      <h2 class="text-center"><?php _e("Thank you!","KleeiaDev") ?></h2> 
      <div class="text-center"> 
       <p id="success"></p><!-- Here should go the success message --> 
       <p> 
        <a id="projectlink" href="">Link</a><!-- Here should go the link I'm getting as result --> 
       </p> 
      </div> 
     </div> 
    </div> 

我在哪裏錯誤?

+0

ajax的反應是什麼?檢查響應。 – WhoAmI

回答

1

如果您的PHP在echo json_encode($result);之後輸出了其他內容,則會導致該錯誤。

確保你沒有別的東西在輸出。如果在json_encode使用exit之後沒有更多的應用程序邏輯。

+1

感謝您的幫助!解決了!乾杯。 – XiLab