2012-04-11 88 views
-2

我在從ajax調用插入查詢時遇到了一些問題。 ajax調用會成功返回,我可以使用更改後的html來查看它,如下面的代碼中所示:success()。我不知道爲什麼process.php中的插入查詢不起作用。 dataString的參數是正確的(dataString的alert需要顯示正確的參數),我的數據庫中的字段可以爲空值。在php中插入查詢不能與ajax一起工作

js代碼

var dataString=$('#testimonials').serialize(); 

    alert (dataString); 

    $.ajax(
    { 
    type: "POST", 
    url: "process.php", 
    data: dataString, 
    success:function() { 
     $('#testimonials').html("<div id='message'></div>"); 
     $('#message').html("<h2>Your information has been submitted!</h2>") 
     .append("<p>Thank you for your help and support.</p>") 
     .hide() 
     .fadeIn(1500, function() 
     { 
     $('#message').append("<img id='checkmark' src='images/check.png' height='30' width='30'/>"); 
     }); 
    }); 

process.php文件

$company =mysql_escape_string($_POST('company')); 
    $jobfunc = mysql_escape_string($_POST('jobfunc')); 
    $location = mysql_escape_string($_POST('location')); 
    $overall = mysql_escape_string($_POST('overall')); 
    $detail = mysql_escape_string($_POST('detail')); 
    $pros = mysql_escape_string($_POST('pros')); 
    $cons = mysql_escape_string($_POST('cons')); 
    $sr_mgmt = mysql_escape_string($_POST('sr_mgmt')); 
    $submitted_by = mysql_escape_string($_POST('submitted_by')); 
    $class = mysql_escape_string($_POST('classof')); 
    $school = mysql_escape_string($_POST('school')); 
    $anonymous = mysql_escape_string($_POST('anonymous'));  

    mysql_select_db($database_connTest, $connTest); 

    $query_AddTestimonial = "INSERT into testimonials (company,job_function,location,overall,project_details,pros,cons,sr_mgmt,submitted_by,class,school,anonymous) VALUES ('$company','$jobfunc','$location','$overall','$detail','$pros','$cons','$sr_mgmt','$submitted_by','$class','$school','$anonymous')"; 
    $result_AddTestimonial = mysql_query($query_AddTestimonial) or die(mysql_error()); 
+0

您需要從此URL URL:「process.php」'傳遞要插入到數據庫中的參數。 – Lion 2012-04-11 22:46:19

+0

我相信他是通過dataString來做到這一點的。 – 2012-04-11 22:47:16

+0

你是什麼意思,它不工作..你有任何錯誤輸出?或者它沒有插入數據庫? – Baba 2012-04-11 22:56:14

回答

0

在當你創建$ query_AddTestimonial,你要創建不把PHP變量中,因爲你的字符串中的倒數第二行並不是說它們是變數。您可以使用PHP變量是這樣的:

$query_AddTestimonial = "INSERT into testimonials (company,job_function,location,overall,project_details,pros,cons,sr_mgmt,submitted_by,class,school,anonymous) VALUES ('{$company}','{$jobfunc}','{$location}','{$overall}','{$detail}','{$pros}','{$cons}','{$sr_mgmt}','{$submitted_by}','{$class}','{$school}','{$anonymous}')"; 
+0

最後一行的第二行(在process.php文件中)。 – 2012-04-11 23:03:43

+0

Ben,我嘗試使用變量的方式來定義它,但仍然沒有將記錄插入到mySQL中。不是$ _POST負責將值分配給在process.php中聲明的變量。例如,在$ company = $ _POST ['company']中,不是$ company,這種情況下的變量是從$ _POST ['company']分配的值嗎?還有其他建議嗎? – amey1908 2012-04-12 01:55:28

+0

我只是通過在sql查詢中放入靜態值來檢查插入語句,插入與ajax調用一起工作。所以問題在於傳遞參數。我嘗試了許多方法來定義參數,但它不起作用。有沒有人有什麼建議?到目前爲止,我已經嘗試在$ .ajax函數下將數據定義爲data:dataString和data:{company:'Yahoo',jobfunc:'operations'....和data:{company:company_name,jobfunc:jobfunction)爲company_name和jobfunction分配值,但不幸的是這些解決方案都不起作用。 – amey1908 2012-04-12 04:43:11

0

的問題是與我打電話變量的方式。它應該是$ _POST ['company']而不是$ _POST('company')。完全錯過了它($ _POST自從它的一個數組後的方括號)