2017-03-11 14 views
1

データベースに格納するためにAJAXを使用してフォームからデータを送信しようとしていますが、この問題があります。私は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 = "#1 my_formを"]')(シリアライズ) 、 ' –

+0

あなたはajaxのアップロード方法をお読みになることをお勧めします。あなたは 'serialize()'でそれを行うことはできません。 – charlietfl

+0

開発モードでは常にブラウザでコンソールを使用してください。この場合、あなたの#my_form –

答えて

0

私はこれを見問題は、スクリプトボタンがクリックされたときに、フォームが提出されていない実行されていることであると何が間違っているかわかりません。送信されているフォームをキャプチャしていないので、あなたは値をキャプチャしていません。 (それはこの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); 
    } 
    }); 


}); 
関連する問題