-1

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

4 回答 4

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,因为如果用户添加 & 或 =,您的字符串将会中断。

于 2013-10-25T12:49:13.553 回答
-1
var dataString = 'User_Name='+ name + 'User_Email=' + email + 'User_Email=' + mobno + 'user_MobileNo=' + landlineno + 'propertyids=' + proprTd;

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

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

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

于 2013-10-25T12:49:18.720 回答
-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 之前,您可以随时添加验证。

于 2013-10-25T12:53:36.243 回答
-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>
于 2013-10-25T12:57:41.700 回答