2014-05-12 21 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. 检查自动提交是否为真(默认情况下为)。