2012-11-06 52 views
1

所以我有一個PHP頁面,從數據庫中獲取數據並顯示一個表。每個td代表電影院中的座位。我想要做的是,當用戶點擊一個或多個tds,點擊發送時,數據庫中每個td的狀態列將從0變爲1(默認)。當下次訪問數據庫時,status = 1的td具有不同的顏色。 我的代碼高達現在是:發送數據按鈕單擊從JavaScript到數據庫

<div id="screen">SCREEN</div> 
<div id="Seatings"> 
    <?php echo "<table border='1'> 
     <tr> 
     <th>Seating</th> 
     </tr>"; 
     $count=0; 
    echo "<tr>"; 
    echo"<td id='Seat_rn'>A</td>"; 
    while($row = mysql_fetch_array($sql)) 
    { 

     if($count<10){ 
     echo "<td id='Seat_A' class='count'>" . $row['Seat'] . "</td>"; 
     } 
    $count++; 
    } 
    echo "</tr>"; 
    $sql=mysql_query("SELECT * FROM Seating_para_20 Where Seat > '10'"); 
    echo "<tr>"; 
    echo"<td id='Seat_rn'>B</td>"; 
    while($row = mysql_fetch_array($sql)) 
    { 
     if($count>=10){ 
     echo "<td id='Seat_B' class='count'>" . $row['Seat'] . "</td>"; 
     } 
    $count++; 
    } 
    echo"</tr>"; 
    echo "</table>"; 
    ?> 
</div> 
<input type="button" value="Done" name="done" onclick="window.close()"> 

我jQuery代碼是:

 $("td #Seat_A").click(function(){ 
    $(this).css("background", "red"); 
     }); 
     $("td #Seat_B").click(function(){ 
    $(this).css("background", "red"); 
     }); 
     $(document."done").click(function(){ 
    alert(price:750 Baht); 
     }) 

我遠不及我想要什麼,我很抱歉,如果我的任何代碼爲「業餘十歲上下的」,但我對此很陌生,我一直在努力。希望能得到任何幫助。

+0

你有沒有聽說過'AJAX'? – F0G

+2

對這種類型的東西使用ajax會更好。如果用戶想要點擊10個席位並且必須提交該頁面10次,那將會很煩人。 – enenen

+0

你爲什麼要循環兩次?第一個循環的查詢在哪裏? –

回答

3

首先你要的ID添加到每個TD上你的餐桌,即Seat ID,例如:

echo "<td id='Seat_A' data-seat='". $row['id'] ."'class='count'>" . $row['Seat'] . "</td>"; 

然後發送該ID到PHP腳本,使用Ajax:

$("td #Seat_A").click(function(){ 
    var seat_number = $(this).data("seat"); 

    $.ajax({ 
     type: 'POST', 
     url: "/take_a_seat.php", 
     data: 'seat_number='+seat_number, 
     success: function(data){ 
      $(this).css("background", "red"); 
     } 
     dataType: "json" 
    }); 
}); 

在PHP腳本中,您必須使用此ID執行您想要的座位並因此返回truefalse。假設您的數據庫表中有一個名爲reserved的字段。例如,您可以獲取唯一ID並將該行更新爲reserved = 1

+0

非常感謝你,花了一段時間讓我理解代碼,但後來更好比從不正確?再次感謝你。 – nupac

1

Javascript是客戶端。你的數據庫是服務器端..所以你必須使用PHP來改變你的數據庫條目。

2

試試這個好用的AJAX腳本來完成你的任務

特點:您可以顯示一個GIF IMG之前發送數據beforeSend部分從PHP文件
GET響應中success節後
隱藏IMG數據插入到數據庫in db in complete section and show successful or msg msg

var myVar = 'your desire data you want to send to db'; 
$.ajax({   
      type: "POST", 
      url:"scripts/dummy.php", 
      data:"myVar="+myVar, 

      beforeSend: function() 
      {     

      }, 
      success: function(resp) 
      {    

      }, 

      complete: function() 
      { 

      }, 

      error: function(e) 
      { 
      alert('Error: ' + e); 
      } 

    }); //end Ajax 
0

這是一個概述。對於現有的記錄,你應該這樣

<?php 
    $count=1; 
    $res = mysql_query("SELECT * FROM Seating_para_20 Where Seat > '10'"); 
    while($row = mysql_fetch_array($sql)) { 

    if($row['status']==1) { 
     $tdcolor = 'red'; 
    } else { 
     $tdcolor = 'blue'; 

    } 
    ?> 

    <td id="td-<?php echo $count;?>" sytle="background-color:<?php echo $tdcolor; ?>" onclick="reserveseat(<?php echo $count; ?>);" > 
    <?php 
    $count++; 
    } 
    ?> 

一些事情頁面加載後改變你會做AJAX操作

<script type="text/javascript" language="javascript"> 
function reserveseat(count) { 
    $.ajax({ 
    type: 'POST', 
    url: "bookseat.php", 
    data: '', 
    success: function(data){ 
     $("#td-"+count).css("background-color", "red"); 
    } 

    }); 
} 

</script> 

bookseat.php你會更改狀態... :-)閱讀從阿賈克斯here。 :-)

+0

非常感謝您的幫助。我使用了你和上面公佈的方法的組合。再次感謝你 – nupac

相關問題