当数据字符串中指定了10个以上的变量时,jQuery.post()会中断

时间:2011-05-26 22:01:00

标签: php jquery ajax

嘿伙计们,我有一个问题,我希望这个问题很容易解决。目前我正在使用此代码将变量从表单发送到PHP。它只要我有少于10个变量就可以工作,但是只要我有10个以上,我的PHP脚本就会出错。这是我的.post()代码:

$.ajax({
            type: "POST",
            url: "ajax.php",
            data: "&email="+ email + "&fname="+ fname + "&lname="+ lname + "&password="+ password + "&groupname="+ groupname + "&productkey="+ productkey + "&company="+ company + "&position="+ position + "&sector="+ sector, 

                success: function(){
                    $('form#submit').hide();
                    //$('form#submit :input').val("");
                     $('div.success').fadeIn();
                }
    });

对我来说这似乎有点低效,这可能就是为什么它在我添加第十个变量后就会崩溃的原因。我有点失落。有什么想法吗?如果需要,我可以提供包含所有文件的表格的拉链。

干杯。

以下是ajax.php文件的主要内容:

  $fname        = htmlspecialchars(trim($_POST['fname']));  
$lname        = htmlspecialchars(trim($_POST['lname']));  
$email        = htmlspecialchars(trim($_POST['email']));  
$password     = md5(trim($_POST['password']));  
$groupname    = htmlspecialchars(trim($_POST['groupname']));  
$productkey   = htmlspecialchars(trim($_POST['productkey']));   
$company      = htmlspecialchars(trim($_POST['company']));   
$position     = htmlspecialchars(trim($_POST['position']));   
$sector       = htmlspecialchars(trim($_POST['sector']));  


$addClient  = "INSERT INTO tbl_user (fname,lname,email,password,groupname,productkey,company,position,sector) VALUES ('$fname','$lname','$email','$password','$groupname','$productkey','$company','$position','$sector')";  
mysql_query($addClient) or die(mysql_error());  

经过进一步的故障排除后,我仍然不能100%确信问题出在哪里,但我确实认为在接受的解决方案中传递数据的方式比我之前尝试的方式要好。我的mySQL数据库中可能还有一个问题,我需要删除一个列并在它正确运行之前重新创建它。谢谢大家 - 希望我没有浪费你的时间

1 个答案:

答案 0 :(得分:1)

尝试将数据作为简单对象传递:

var data = {"email": email, "fname": fname, ....}
$.ajax({
  type: "POST",
  url:  "ajax.php",
  data: data,
  ...
})

也许这会有所帮助:/