2017-03-11 173 views
1

我想从表单使用AJAX发送数据到PHP文件以便存储在数据库中,但我有这个问题。我无法将数据发送到PHP文件。我不知道是什么毛病Ajax不发送数据到php文件

this is php 
 

 
<?php 
 
    
 
$servername = "localhost"; 
 
$username = "root"; 
 
$password = ""; 
 
$db_name="menoon"; 
 

 
// Create connection 
 
$conn = new mysqli($servername, $username, $password,$db_name); 
 

 
// Check connection 
 
if ($conn->connect_error) 
 
{ 
 
    die("Connection failed: " . $conn->connect_error); 
 
} 
 
\t $UserName=$_POST['username']; 
 
\t $Email=$_POST['inputEmail3']; 
 
\t $Password=md5($_POST['inputPassword3']); 
 
\t $Address=$_POST['add']; 
 
\t $fname=$_POST['name']; 
 
\t $membership=$_POST['memberhhiip']; 
 
\t 
 
if (filesize($_FILES['pic']['tmp_name'])) 
 
{ 
 
    // cover_image is empty (and not an error) 
 
    
 
\t $File=file_get_contents($_FILES['pic']['tmp_name']); //$_POST['file']; 
 
\t 
 
\t 
 
\t $vaildMail="SELECT EMAIL From user_emails WHERE EMAIL='$Email'"; 
 
\t 
 
\t $r =mysqli_query($conn ,$vaildMail); 
 
\t if(mysqli_num_rows($r)==0) //to check if there is an exist email 
 
\t { 
 
    
 
    
 
    // echo "ID".$ID." ".$UserName." ".$Password."<br>"; \t 
 
    \t $sql="INSERT INTO user (FULLNAME,HOMEADDRESS,UserName,PASSWORD,MEMBERSHIPTYPE,PROFILEPHOTO) values('$fname','$Address','$UserName','$Password','$membership',?)"; 
 
\t 
 
\t 
 
\t if($stmt = $conn->prepare($sql)) 
 
\t {   $stmt->bind_param("b",$_null); 
 
\t \t \t \t $stmt->send_long_data(0,$File); 
 
\t \t \t \t $stmt->execute(); 
 

 
\t \t \t \t $sql="SELECT ID FROM user WHERE UserName='$UserName'"; 
 
\t \t \t  $s =mysqli_query($conn ,$sql); 
 
\t \t \t  $row = mysqli_fetch_row($s); 
 
\t \t \t  $sql=" INSERT INTO user_emails (USER_ID,EMAIL) values('$row[0]','$Email')"; 
 
\t \t \t  $sr =mysqli_query($conn ,$sql); 
 

 
\t \t \t 
 
\t \t \t  
 
\t \t \t \t { 
 
\t \t \t \t \t 
 
\t \t \t \t \t \t ob_start(); 
 
\t \t \t    header('Location:../index.php'); 
 
\t \t \t    ob_end_flush(); 
 
\t \t \t    die(); 
 
\t \t \t \t \t 
 
\t \t \t \t \t 
 
\t \t \t \t } 
 
    } 
 

 
    else { 
 
    \t echo "user name alredy exists"; 
 
\t \t } 
 
\t 
 
\t } 
 
\t else {echo "Email alredy exists"; 
 
\t \t \t \t \t } \t 
 
} 
 
else {$vaildMail="SELECT EMAIL From user_emails WHERE EMAIL='$Email'"; 
 

 
\t $r =mysqli_query($conn ,$vaildMail); 
 
\t if(mysqli_num_rows($r)==0) //to check if there is an exist email 
 
\t { 
 
    
 

 
    // echo "ID".$ID." ".$UserName." ".$Password."<br>"; \t 
 
    \t $sql=" INSERT INTO user (FULLNAME,HOMEADDRESS,UserName,PASSWORD,MEMBERSHIPTYPE) values('$fname','$Address','$UserName','$Password','$membership')"; 
 
    
 
\t 
 
\t 
 
\t if ($s =mysqli_query($conn ,$sql)) 
 
\t 
 
{  $sql="SELECT ID FROM user WHERE UserName='$UserName'"; 
 
     $s =mysqli_query($conn ,$sql); 
 
     $row = mysqli_fetch_row($s); 
 
     $sql=" INSERT INTO user_emails (USER_ID,EMAIL) values('$row[0]','$Email')"; 
 
     $sr =mysqli_query($conn ,$sql); 
 

 

 

 
    
 
\t { 
 
\t \t 
 
\t \t \t 
 
\t \t \t ob_start(); 
 
       header('Location:../index.php'); 
 
       ob_end_flush(); 
 
       die(); 
 
\t \t 
 
\t \t 
 
\t } 
 
\t } 
 

 
\t 
 

 
else 
 
\t   { echo "user name alredy exists"; 
 
       
 

 
       
 
\t } 
 
\t 
 
\t } 
 
\t else {echo "Email alredy exists";} 
 

 

 
\t \t } 
 

 
?> 
 

 
this is the html file including script 
 

 
<div id="signup" class="modal fade" role="dialog"> 
 
    <div class="modal-dialog"> 
 

 
    <!-- Modal content--> 
 
    <div class="modal-content"> 
 
     <div class="modal-header"> 
 
     
 
     <h4 class="modal-title"SIGN UP</h4> 
 
     </div> 
 
    
 
     
 
     <div class="modal-body"> 
 
       
 
       <form class="form-horizontal" role="form" id="#my_form" enctype="multipart/form-data"> 
 

 

 
       
 
       
 
        <div class="form-group"> 
 
        
 

 
        <div class="col-sm-10"> 
 
         <input type="email" class="form-control" 
 
         name="inputEmail3" id="inputEmail3" placeholder="Email" required/> 
 
        </div> 
 
        </div> 
 
        <div class="form-group"> 
 
        
 
        <div class="col-sm-10"> 
 
         <input type="password" class="form-control" 
 
          name="inputPassword3" id="inputPassword3" placeholder="Password" required/> 
 
        </div> 
 
        </div> 
 

 
      
 
          <div class="form-group"> 
 
         <div class="col-sm-10"> 
 
         <input type="file" name="pic" class="" data-multiple-caption="{count} files selected" multiple /> 
 
         </div> 
 
         </div> 
 
        
 
        <div class="form-group"> 
 
        <div class="col-sm-offset-2 col-sm-10"> 
 
         <div class="checkbox"> 
 
         <label> 
 
          <input type="checkbox"/> Remember me 
 
         </label> 
 
         </div> 
 
        </div> 
 
        </div> 
 
        <div class="form-group"> 
 
        <div class="col-sm-offset-2 col-sm-10"> 
 
         <button type="submit" class="btn btn-primary " onclick="sendForm()">Sign Up</button> 
 
        </div> 
 
        </div> 
 

 

 
       </form> 
 
       
 
       
 
       
 
       
 
       
 
       
 
      
 
     </div> 
 
     <div class="modal-footer"> 
 
     
 
     </div> 
 
    </div> 
 

 

 
    </div> 
 
</div> 
 
    
 
<script > 
 
    function sendForm(){ 
 
    
 
    $.ajax({ 
 
    method: "POST", 
 
    url: "signcontroller.php", 
 
    data: jQuery("#my_form").serialize(), 
 
    cache: false, 
 
    success: function(data){ 
 
     alert(data); 
 
    } 
 
    }); 
 

 
} 
 

 
</script>

+0

'数据:jQuery的( '形式[ID = “#my_form”]')序列化()。 ,' –

+0

建议你阅读如何做ajax上传,你不能用'serialize()'做到这一点 – charlietfl

+0

在开发模式下总是在浏览器上使用控制台,它会提示错误。在这种情况下,它是#my_form –

回答

0

我这个看到的问题是,你正在运行一个按钮被按下时,而不是在提交表单的脚本。由于您没有捕获正在提交的表单,因此您没有捕获任何值。尝试这样的事情,而不是:(形式名称取出包括hashtag第一,所以它看起来像这样id="my_form"

$(document).on("submit", "#my_form", function(e){ 
// The e is the form submission event. 


e.preventDefault(); //This prevents form from submitting normally 

var formdata = $('#my_form').serialize(); //This will serialize the form data 

$.ajax({ 
    method: "POST", 
    url: "signcontroller.php", 
    data: formdata, 
    cache: false, 
    success: function(data){ 
     alert(data); 
    } 
    }); 


});