【问题标题】:Ajax doesnt send data to PHPAjax 不向 PHP 发送数据
【发布时间】:2016-03-09 21:44:38
【问题描述】:

我正在尝试创建我的注册页面,该页面使用 Ajax 将数据发布到 PHP 文件,然后使用 PHP 文件检查表单的错误并返回一些错误

我的表格

    <head>
<script type="text/javascript" src="assets/extra/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#submit").click(function(){
var fname=$('#firstname').val();
var lname=$('#lastname').val();
var displayname=$('#displayname').val();
var password=$('#password').val();
var cpassword=$('#cpassword').val();
var email=$('#email').val();
var terms=$('#terms').val();
$.ajax({
type: "POST",
url: "register.php",
data: "firstname="+fname+"&lastname="+lname+"&displayname="+displayname+"&password="+password+"&cpassword="+cpassword+"&email="+email+"&term="+terms ,
success: function(html){
$("#load").css('display','block');
$("#signupform").css('display','none');
$("#box").css('display','none');
$("#loading").fadeOut('500', function(){
$("#loading").css('display','none');
$("#box").html(html).show('slow');
});
}
});
return false;

});
});
</script>
</head>
<style type="text/css">
#loading
{
display:none;
width:500px;
height:500px;
background:url(img/loading.gif) no-repeat;
}
</style>
</head>

 <div id="loading" style="">
</div>
<div id="box">
</div>


                                <div class="form-group">
                                    <label for="firstname" class="col-md-3 control-label">Fistname</label>
                                    <div class="col-md-9">
                                        <input type="text" name="firstname" id="firstname" class="form-control inp" placeholder="Fistname" minlength="3" maxlength="50" value="" required>

                                    </div>
                                </div>

                                <div class="form-group">
                                    <label for="lastname" class="col-md-3 control-label">Lastname</label>
                                    <div class="col-md-9">
                                        <input type="text" name="lastname" id="lastname" class="form-control inp" placeholder="Lastname" minlength="3" maxlength="50" value="" required>

                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="lastname" class="col-md-3 control-label">Displayname</label>
                                    <div class="col-md-9">
                                        <input type="text" name="displayname" id="displayname" class="form-control inp" placeholder="Displayname" minlength="3" maxlength="50" value="" required>

                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="email" class="col-md-3 control-label">Email</label>
                                    <div class="col-md-9">
                                        <input type="email" name="email" id="email" class="form-control inp" value="" placeholder="Email" required>

                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="password" class="col-md-3 control-label">Password</label>
                                    <div class="col-md-9">
                                        <input type="password" name="password" id="password" class="form-control inp" value="" placeholder="Password" required>

                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="password" class="col-md-3 control-label">Confirm Password</label>
                                    <div class="col-md-9">
                                        <input type="password" name="cpassword" id="cpassword" class="form-control inp" value="" placeholder="Confirm Password" required>

                                    </div>
                                </div>

                                <div class="form-group">
                                    <div class="col-sm-offset-3 col-sm-9">
                                        <label><input type="checkbox" name="terms" id="terms" value="yes" checked> Accept<a href="#" target="_blank"> Term</a></label><div id="err_terms" class="err"></div>
                                    </div>
                                </div>
                                <!-- Button --> 
                                <div class="form-group">                                     
                                    <div class="col-md-offset-3 col-md-9">
                                        <button id="btn-signup" type="submit" class="btn btn-info signup-bt" id="submit" name="submit"> &nbsp <i class="fa fa-user-plus"></i>  Register</button>

                                    </div>
                                </div> 
                            </form>

这是我的 PHP

if(isset($_POST['fistname']) && isset($_POST['lastname']) && isset($_POST['email']) && isset($_POST['displayname'])) {
$fname = mysql_real_escape_string($_POST['firstname']);
$lname = mysql_real_escape_string($_POST['lastname']);
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string($_POST['password']);
$cpassword = mysql_real_escape_string($_POST['cpassword']);
$displayname = mysql_real_escape_string($_POST['displayname']);
$checkemail = mysql_query("SELECT `email` FROM `users` WHERE email='$email'");
$checkname = mysql_query("SELECT `displayname` FROM `users` WHERE displayname='$displayname'");
if(mysql_num_rows($checkemail) != 0){
  echo '<span class="message error">Something</span>';
}
if(mysql_num_rows($checkname) != 0){
echo '<span class="message error">Something</span>'; 
}
if($terms!="yes"){
 echo '<span class="message error">Something</span>'; 
}
if($password!=$cpassword){
  echo '<span class="message error">Something</span>';
}
if($displayname==""){
echo '<span class="message error">Something</span>'; 
}
if($password==""){
echo '<span class="message error">Something</span>';
}
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
echo '<span class="message error">Something</span>';
}
if($terms != "yes"){ 
echo '<span class="message error">Something</span>';
}
else{
// QUERY
}
}

当我单击提交时,我尝试检查 HTTP 标头,它没有向 register.php 发送数据 所以..我该如何解决? 谢谢

【问题讨论】:

标签: javascript php ajax post


【解决方案1】:

这里有错别字:

if(isset($_POST['fistname']) && ...

应该是“名字”。

【讨论】:

    【解决方案2】:

    由于缺乏更好的描述,浏览器“困惑”将您的按钮类型从 submit 更改为 button,因此它不会尝试提交:

    <button id="btn-signup" type="button" class="btn btn-info signup-bt" id="submit" name="submit"> &nbsp <i class="fa fa-user-plus"></i>  Register</button>
    

    你应该传递一个对象,而不是一个用于 post ajax 的字符串:

    $.ajax({
       type: "POST",
       url: "register.php",
       data: { 
          "firstname": fname,
          "lastname": lname,
          "displayname": displayname,
          "password": password,
          "cpassword": cpassword,
          "email": email,
          "term": terms
       },
       success: function(html){ /* you success function here*/
    });
    

    【讨论】:

    • 还是没有发送数据到register.php
    猜你喜欢
    • 2014-01-11
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多