【问题标题】:my data is not saving in database using ajax我的数据没有使用 ajax 保存在数据库中
【发布时间】:2013-11-04 14:21:22
【问题描述】:

这是 javacript 和 ajax 不知道是什么错误,我在没有 ajax 的情况下尝试了它,但 ajax 不工作。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
</script>
<script type="text/javascript" >
$(function() {
$(".submit").click(function() {
var name = $("#User_Name").val();
var email = $("#User_Email").val();
var mobno = $("#User_Email").val();
var landlineno = $("#user_MobileNo").val();
var proprTd = $("#propertyids").val();
var dataString = 'User_Name='+ name + 'User_Email=' + email + 'User_Email=' + mobno + 'user_MobileNo=' + landlineno + 'propertyids=' + proprTd;

if(name=='' || email=='' || mobno=='' || landlineno=='')
{
$('.success').fadeOut(200).hide();
$('.error').fadeOut(200).show();
}
else
{
$.ajax({
type: "POST",
url: "SaveContactDetails.php",
data: dataString,
success: function(){
$('.success').fadeIn(200).show();
$('.error').fadeOut(200).hide();
}
});
}
return false;
});
});
</script>

这是html代码 不知道是什么错误我在没有 ajax 的情况下尝试了它,但 ajax 不工作。

<form method="post" name="form" >
<input type="hidden" name="propertyid" id="propertyids" value="<?php echo $Propid  ?>" >
                <input id="individual" name="rdoiam" value="individual" type="radio" class="input-38-ieo">
                Individual
                <input id="Agent" name="rdoiam" value="individual" type="radio" class="input-38-ieo">
                Agent
                <input id="builder" name="rdoiam" value="individual" type="radio" class="input-38-ieo">
                Builder <span id="ReqTypeErrorDiv12968081_left" class="span-41-ieo"></span> </li>
              <li class="li-42-ieo">
                <label class="label-43-ieo">Name<span class="span-37-ieo">*</span></label>
                :
                <input type="text" id="User_Name"  name="User_Name" maxlength="30" class="input-45-ieo11">
<input  type="text" class="input-276-ieo11" id="Mobileno" name="user_MobileNo"  maxlength="12">
<input  type="text" class="input-276-ieo11" id="userLandlineno" name="userLandlineno"  maxlength="12">
</form>

这是php文件

<?php
   include 'config.php';

    $iam ="";
    $User_Name="";
    $User_Email="";
     $user_MobileNo="";
     $user_LandlineNo="";
     $txtMessage="";
   if (isset($_POST['rdoiam']))
 {
 $iam =$_POST['rdoiam'];
 }

      if (isset($_POST['User_Name']))
 {
  $User_Name=$_POST['User_Name'];
 }
      if (isset($_POST['User_Email']))
 {
   $User_Email=$_POST['User_Email'];
 }
      if (isset($_POST['user_MobileNo']))
 {
  $user_MobileNo=$_POST['user_MobileNo'];
 }
          if (isset($_POST['userLandlineno']))
 {
 $user_LandlineNo=$_POST['userLandlineno'];
 }
 if(isset($_POST['txtMessage']))
 {

    $txtMessage=$_POST['txtMessage'];
 }


   $Propid=$_POST['propertyid'];




        $iam =trim($iam);
    $User_Name=trim($User_Name);
    $User_Email=trim($User_Email);
     $user_MobileNo=trim($user_MobileNo);
     $user_LandlineNo=trim($user_LandlineNo);
     $txtMessage=trim($txtMessage);


$str="Call sp_SaveContactDetails('".$iam."','".$User_Name."','".$User_Email."','".$user_MobileNo."','".$user_LandlineNo."','".$txtMessage."','".$Propid."')";

   // $sql=mysql_query($str);
    if(!mysql_query($str)) 
{ 
 die('Error:'.mysql_error()); 
 } 
 else 

 { 







  }
     ?>

【问题讨论】:

  • 将错误处理程序添加到 ajax 调用,是否触发。设置喙点,这些值是您所期望的吗?
  • @user2092317,这是不正确的......
  • 您的数据字符串中缺少&amp;,正如我在回答中所说...

标签: javascript php html mysql ajax


【解决方案1】:

您的数据字符串中缺少&amp;

var dataString = 'User_Name='+ name + 'User_Email=' + email + 'User_Email=' + mobno + 'user_MobileNo=' + landlineno + 'propertyids=' + proprTd;

必须是:

var dataString = 'User_Name='+ name + '&User_Email=' + email + '&User_Email=' + mobno + '&user_MobileNo=' + landlineno + '&propertyids=' + proprTd;

这就是为什么它没有按照您的意愿发送正确的数据。当然,你可以序列化你所有的数据...

您还应该使用 encodeURIComponent,因为如果用户添加 & 或 =,您的字符串将会中断。

【讨论】:

    【解决方案2】:

    你可以用这个

      <script>
            $(function () {
                $('form#person').on('submit', function(e) {
                    $.ajax({
                        type: 'post',
                        url: 'show.php',
                        data: $('form').serialize(),
                        success: function (data) {
                            alert(data);
                        }
                    });
                    e.preventDefault();
                });
            });     
        </script>
    

    【讨论】:

      【解决方案3】:

      或者只使用serialize 函数,反正你使用的是jQuery。

      $( "form" ).on( "submit", function( event ) {
        event.preventDefault();
        var formData = $( this ).serialize();
      
        $.ajax({
          type: "POST",
          url: "SaveContactDetails.php",
          data: formData,
          success: function(){
            $('.success').fadeIn(200).show();
            $('.error').fadeOut(200).hide();
          }
        });
      });
      

      在发送 ajax 之前,您可以随时添加验证。

      【讨论】:

        【解决方案4】:
        var dataString = 'User_Name='+ name + 'User_Email=' + email + 'User_Email=' + mobno + 'user_MobileNo=' + landlineno + 'propertyids=' + proprTd;
        

        这不是你构建查询字符串的方式

        字符串看起来像User_Name=nameUser_Email=email....,您缺少每个之间的&amp;。此外,您应该使用encodeURIComponent,因为如果用户添加 & 或 =,您的字符串将会中断。

        看看 jQuery serialize() 它会为您完成所有工作。

        【讨论】:

        • 如何将所有数据发布到 php。
        • 不客气.. @epascarello 只需编辑他的答案,然后从我那里复制,你错过了&amp;,哈哈...
        猜你喜欢
        • 2020-12-01
        • 2021-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-11
        • 2012-12-16
        相关资源
        最近更新 更多