我的数据没有使用ajax保存在数据库中

时间:2013-10-25 12:46:48

标签: javascript php html mysql ajax

这是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 

 { 







  }
     ?>

4 个答案:

答案 0 :(得分:0)

您的数据字符串中缺少&

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,因为如果用户添加&amp;或=,你的字符串将会破坏。

答案 1 :(得分:-1)

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

这不是你如何构建查询字符串

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

看看jQuery serialize()它为你做了所有这些。

答案 2 :(得分:-1)

或者只使用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之前,您始终可以添加验证。

答案 3 :(得分:-1)

您可以使用此

  <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>