1

我现在有 ajax 发送表单的问题,找不到错误在哪里,

这是我的html:

<form method="post" id="update-profile" name="update-form" action="process.php">

<input name="username" type="text"  id="username"  value="<?php echo $username;?>"/>
........
 <input name="update_profile" type="button" class="submit" id="update_profile" value="Update" onclick="return formValidation();" />

这是我的javascript:

    function formValidation() {
        // other validations here
    if (validsex(umsex, ufsex)) { 



          $('#mydata').html('Saving ...<img src="../images/loading.gif" />');
      $.ajax({

      url: "process.php",
      dataType: 'json' ,
      data :{    id       : document.getElementById('iidd').value,
                 username : document.getElementById('username').value,
                 name     : document.getElementById('name').value,
                   password : document.getElementById('password').value,
                    slist: document.getElementById('slist').value,
                  sexs : sexs,
                  update_profile : "update_profile",




     type : 'POST',

      success: function(msg){


       $('#mydata').html("<span >saved succefully </span>").delay(3000).fadeOut('fast');


       }
         }


           });


                         }
                    }

            }
        }

}
return false;
  }                             

甚至用这个调试过

     error: function(jqXHR, textStatus, errorThrown) {
    console.log(JSON.stringify(jqXHR));
    console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
   }, 

它说:AJAX error: undefined : undefined

所以我不知道是什么问题。

这是我的 process.php :

   if (isset($_POST['update_profile'])) {

    $id = $_POST['iidd'];
    $username = mysql_real_escape_string($_POST['username']);
    $name = mysql_real_escape_string($_POST['name']);
    $password = mysql_real_escape_string($_POST['password']);
    $country = mysql_real_escape_string($_POST['slist']);
    $sex = mysql_real_escape_string($_POST['sexs']);
 //update query here

谢谢!。

4

2 回答 2

2

你还没有关闭data属性的大括号

     data: {
             id: document.getElementById('iidd').value,
             username: document.getElementById('username').value,
             name: document.getElementById('name').value,
             password: document.getElementById('password').value,
             slist: document.getElementById('slist').value,
             sexs: sexs,
             update_profile: "update_profile"

         }, <---- Missing this 

而且我不明白代码中所有其他额外大括号的原因。

应该看起来像

 function formValidation() {
     // other validations here
     if (validsex(umsex, ufsex)) {
         $('#mydata').html('Saving ...<img src="../images/loading.gif" />');
         $.ajax({

             url: "process.php",
             dataType: 'json',
             data: {
                 id: document.getElementById('iidd').value,
                 username: document.getElementById('username').value,
                 name: document.getElementById('name').value,
                 password: document.getElementById('password').value,
                 slist: document.getElementById('slist').value,
                 sexs: sexs,
                 update_profile: "update_profile"
             },
             type: 'POST',
             success: function (msg) {
                 $('#mydata')
                     .html("<span >saved succefully </span>")
                     .delay(3000).fadeOut('fast');
             }

         });
     }
     return false;
 }
于 2013-06-22T00:54:25.947 回答
0

好的,我已经修好了。

在制作了@sushanth 所说的丢失的大括号并在之后更改了它$id = $_POST['id']之后,这是成功的消息。

我在我的服务器端做了这个

     $response_array['status'] = 'success';
    }else {$response_array['status'] = 'error';}
    echo json_encode($response_array);

和客户端这个:

    success: function(data){
       if(data.status == 'success')
    //   jAlert("Your data is saved succefully");
$('#mydata').html("<span >saved succefully!</span>").delay(3000).fadeOut('fast');
   else if(data.status == 'error')
      alert("Error on query!");
于 2013-06-22T16:32:34.450 回答