2012-10-05 70 views
1

這段代碼到底有什麼用?爲什麼jquery ajax轉到url而不是加載它?

$(".submit").click(function(){ 
    alert("clicked"); 
    var name = $(".name").val(); 
    var email = $(".email").val(); 
    var comment = $(".comment").val(); 
    var articleId = $(".articleId").val(); 
    var dataString = 'name='+ name + '&email=' + email + '&comment=' + comment+ '&articleId=' + articleId; 
    if(name=='' || comment==''){ 
     alert('Please Give Valid Details'); 
    } 
    else{ 
     alert('so far so good'); 
     $.ajax({ 
      type: "POST", 
      url: "../_includes/process.php", 
      data: dataString, 
      cache: false, 
      success: function(){ 
       alert("succes"); 
       $(".updating").fadeIn(400); 
      } 
     }); 
    } 
}); 

一切正常,直到$.ajax認定process.php的閱讀,而不是和執行它實際上進入該頁面在瀏覽器的代碼和。在ajax調用之後,我嘗試使用return false,但是process.php中的代碼從未發生過。

這裏是process.php

<?php 
    // code to establish connection first 

    if($_POST){ 
    $name=$_POST['name']; 
    $name=mysql_real_escape_string($name); 

    $email=$_POST['email']; 
    $email=mysql_real_escape_string($email); 

    $comment=$_POST['comment']; 
    $comment=mysql_real_escape_string($comment); 

    $articleId=$_POST['articleId']; 
    $articleId=mysql_real_escape_string($articleId); 

    if(!empty($email)){ 
      $lowercase = strtolower($email); 
    } 

    $result = mysql_query("INSERT INTO comments(name,email,comment,articleId) VALUES ('$name','$email','$comment','$articleId')"); 

    if($result){ 
      echo "success"; 
    } else { 
      echo "there were erros" . mysql_error(); 
    } 
    exit; 

    ?> 

任何幫助,將不勝感激。

+1

你有'返回false;'在正確的地方?即在最後一組括號內。 – martincarlin87

+0

我把它放在其他的結束括號之後..它應該在哪裏? –

+1

那應該沒問題吧。如果你有'return false',firebug或者chrome開發者工具會給process.php中可能發生的任何錯誤帶來什麼? – martincarlin87

回答

4

你必須防止您的提交按鈕的默認操作:

$(".submit").click(function(e) { 
    e.preventDefault(); 
    alert("clicked"); 
    ... 
}); 
+0

嗯我添加了這個,但我有同樣的問題,我有'返回false'process.php不會做它的東西 –

+1

它應該工作 - 檢查你的路徑,檢查你是否在你的PHP文件中使用POST變量..只是爲了測試嘗試評論一切,並回顯一個字符串,看看它是否工作,併發回你的Ajax調用回覆 –

+0

也許我的PHP是問題是,我將編輯我的問題以添加該代碼。 –

1

你需要的,如果你想知道它的工作確定從process.php出呼應的東西。

e.g

echo 'success'; 
exit; // just incase 

然後在Ajax請求

success: function(response){ 
      if (response == 'success') { 
       alert("success"); 
       $(".updating").fadeIn(400); 
      } 
      else { 
       alert('error'); 
      } 
     } 

即使你不呼應出來,process.php應該仍然工作。

嘗試啓用錯誤,如果它仍然不能正常工作報告:

error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 
+0

我有錯誤報告,我直接去了我的瀏覽器process.php,看看它是否顯示任何錯誤,它沒有。 Firebug說還沒有迴應。我真的不知道還有什麼可以嘗試的。 –

相關問題