-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

または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
var dataString = 'User_Name='+ name + 'User_Email=' + email + 'User_Email=' + mobno + 'user_MobileNo=' + landlineno + 'propertyids=' + proprTd;

それはクエリ文字列を作成する方法ではありません

文字列は のように見えますが、それぞれの間User_Name=nameUser_Email=email....がありません。&また、ユーザーが & または = を追加すると、文字列が破損するため、encodeURIComponentを使用する必要があります。

Look at jQuery serialize() it does all of it for you.

于 2013-10-25T12:49:18.720 に答える
-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 に答える