2017-05-04 27 views
0

我有一個航班表,我正在使用一個循環打印出航班信息以及提交按鈕,點擊的按鈕是數據已提交,因此這是行不通的最好方法。它知道被點擊了什麼按鈕,但不執行SQL的數據插入到我的購物籃如何使用PHP和SQL將表數據提交到另一個表

<?php 
      $dbQuery=$db->prepare("select * from flights"); 
      $dbQuery->execute(); 
      $index = 1; 
      while ($dbRow=$dbQuery->fetch(PDO::FETCH_NUM)) { 
      echo "<div>". 
       "<div class=\"col-md-3 col-sm-6 hero-feature\">". 
       "<div class=\"thumbnail\">". 
       "<img src=\"img/aeroplane.png\" alt=\"\">". 
       "<div class=\"caption\">". 
       "<h3>$dbRow[1] to $dbRow[2]</h3>". 
       "<p>£$dbRow[3]</p>". 
       "<p>". 
       "<form method=\"post\" action=\"\">". 
       "<input type=\"hidden\" name=\"action\" value=\"submit\" />". 
       "<input type=\"submit\" class=\"btn btn-primary\" id=\"$index-submit\"type=\"submit\" name=\"submit\" value=\"$index\">". 
       "</form>". 
       "</p>". 
       "</div>". 
       "</div>". 
       "</div>". 
       "</div>"; 

       if(isset($_POST['action'])){ 
        //echo '<br />The ' . $_POST['submit'] . ' submit button was pressed<br />'; 
        $dbQuery=$db->prepare("insert into basket values (null, :userID, :flightTo to :flightFrom, :flightPrice, 'N')"); 
        $dbParams = array('userID'=>$userID,'fightTo'=>$dbRow[1],'fightFrom'=>$dbRow[2],'flightPrice'=>$dbRow[3]); 
        $dbQuery->execute($dbParams); 
        } 

       $index++; 
     } 
+0

放後的操作代碼退出循環 –

+0

的身邊,我試過,有現在,但它仍然是不及格的sql語句正確的dbRow的航班名稱和價格,所以我可以插入到我的數據庫 –

回答

0

您在while循環重複你插入代碼,這並不好看,我只寫了用ajax能的方法解決你的問題。你可以按照這個代碼,我寫得很清楚。

主頁

<!-- generate html rows as your requirement in php --> 
<div class="container"> 
     <div class="row"> 
       <div class="col1 col-md-1">test1</div> 
       <div class="col2 col-md-1">test2</div> 
       <div class="col3 col-md-1">test3</div> 
       <div class="col4 col-md-1">test4</div> 
       <div class="col-md-1"> <button type="button" class="use-address" >Save</button></div> 
     </div> 

     <div class="row"> 
       <div class="col1 col-md-1">test5</div> 
       <div class="col2 col-md-1">test6</div> 
       <div class="col3 col-md-1">test7</div> 
       <div class="col4 col-md-1">test8</div> 
       <div class="col-md-1"> <button type="button" class="use-address" >Save</button></div> 
     </div> 

     <div class="row"> 
       <div class="col1 col-md-1">test9</div> 
       <div class="col2 col-md-1">test10</div> 
       <div class="col3 col-md-1">test11</div> 
       <div class="col4 col-md-1">test12</div> 
       <div class="col-md-1"> <button type="button" class="use-address" >Save</button></div> 
     </div> 
</div> 

<script src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
     $(".use-address").click(function() { 
       var val1 = $(this).parent('div').parent('div').find('.col1').text(); 
       var val2 = $(this).parent('div').parent('div').find('.col2').text(); 
       var val3 = $(this).parent('div').parent('div').find('.col3').text(); 
       var val4 = $(this).parent('div').parent('div').find('.col4').text(); 
       $.ajax({ 
         type:'POST', 
         url:'service.php', 
         data:{val1:val1,val2:val2,val3:val3,val4:val4,action:'saveData'}, 
         success:function(response){ 
           alert(response); 
         } 
       }); 
     }); 
}) 
</script> 

service.php

<?php 
if($_POST['action'] == 'saveData'){ 
    echo $_POST['val1'],", ",$_POST['val2'],", ",$_POST['val3'],", ",$_POST['val4']; 
    //write here your mysql insertion code and return successfull message 
} 
+0

謝謝,這是完美 –

+0

歡迎:) –

相關問題