2017-03-11 4 views
1

Senden Ich versuche, Daten von der Form zum PHP-Datei, um in der Datenbank gespeichert werden mit AJAX zu senden, aber ich habe dieses Problem. Ich kann keine Daten an die PHP-Datei senden. Ich weiß nicht, was falschAjax keine Daten an PHP-Datei

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

'Daten: jQuery ('form [id = "# my_form"]') serialisiert werden(). , ' –

+0

Ich schlage vor, Sie lesen, wie man Ajax Uploads, Sie können es nicht tun mit' serialize() ' – charlietfl

+0

Verwenden Sie immer die Konsole in Ihrem Browser, wenn im Entwicklungsmodus, wird es auf den Fehler hinweisen. In diesem Fall ist es das '#' in Ihrem #my_form –

Antwort

0

Das Problem, das ich mit diesem zu sehen ist, dass Sie das Skript ausgeführt werden, wenn eine Schaltfläche geklickt wird, nicht, wenn das Formular abgeschickt wird. Da Sie das übermittelte Formular nicht erfassen, erfassen Sie keine der Werte. Versuchen Sie so etwas wie dies statt: (Nehmen Sie den Hashtag in Form Namen FIRST, so es wie diese id="my_form" sieht)

$(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); 
    } 
    }); 


});