2014-05-12 50 views
0

向MySQL插入值,我有幾個單選按鈕,我想使用jQuery和AJAX將它們的值發送到MySQL表。所有按鈕和jQuery代碼都放在single-project.php(我修改了WordPress主題),並且應該處理與MySQL交互的代碼位置放在同一文件夾中的db.php中。沒有結果在我的研究網站上使用AJAX

但是,有些東西並不合適,因爲值不會出現在數據庫表中。有人可以幫忙嗎?

的jQuery:

 //the last button 
     $('#submit_last_button').click(function(){ 
     SomeVariable = $('input:radio[name=lastRadio]:checked').val(); 
      if (!$("input:radio[name=lastRadio]").is(":checked")) { 
       $("label#lastRadio_error").show(); 
       $("input#lastRadio").focus(); 
       return false; 
      } else { 
      if ('input:radio[name=lastRadio]:checked') 
      $('#PreviousButtonDiv').hide(); 
      $('#NextDiv').show(); 
      $.post('db.php',{action: "submit_last_button", previous_variable:SomePreviousVariable, last_variable:SomeVariable},function(res){ 
      $('#result').html(res); 
      }); 
      } 
      }); 
     }); 

db.php中:

<?php 
$con = mysql_connect('localhost','user', 'password'); 
$db  = mysql_select_db('my_database'); 

if($_POST['action'] == 'submit_last_button'){ 

    $previous_variable = mysql_real_escape_string($_POST['previous_variable']); 
    $last_variable = mysql_real_escape_string($_POST['last_variable']); 




    $sql = "insert into MyTable (id, variable1, variable2) values (NULL, '$previous_variable', '$last_variable')"; 
    $query = mysql_query($sql); 
    if($query){ 
     echo "Record Inserted."; 
    }else { 
     echo "Something Wrong!"; 
    } 
} 
?> 
+0

您是否在AJAX操作之前調試過Javascript變量,以確保它們包含您期望的內容? –

+0

您是否嘗試過調試以縮小問題的根源?例如,POST請求是否正確構造或者是服務器端腳本的問題?一些非常基本的調試將縮小這個問題的速度。 –

+0

@scrowler - 是的,我用警報來檢查它們是否包含我期望它們包含的內容,並且沒有問題 – sheepas

回答

0

有什麼不工作是在你的代碼的各種可能性。但首先,問題不在於AJAX,而是在MySQL上保存。 AJAX將您的數據傳遞給服務器上的php腳本,然後將其保存在MySQL上。

  1. 檢查值是否正確到達您的腳本;
  2. 檢查你是否得到數據庫連接 - 檢查錯誤日誌或打印出來;
  3. 檢查您是否沒有收到SQL語法錯誤 - 再次檢查日誌;
  4. 檢查自動提交是否爲真(默認情況下爲)。