2

したがって、データベースからデータを取得してテーブルを表示するphpページがあります。各tdは、映画館の座席を象徴しています。ユーザーが1つ以上のtdsをクリックし、[送信]をクリックすると、データベース内の各tdのステータス列が0(デフォルト)から1に変わります。次回データベースにアクセスすると、status=1のtdの色が異なります。これまでの私のコードは次のとおりです。

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

私は自分が望むものにほど遠いので、私のコードのいずれかが「アマチュアっぽい」ものである場合は申し訳ありませんが、私はこれに不慣れであり、非常に懸命に努力しています。私が得ることができるどんな助けでもありがたいです。

4

5 に答える 5

3

まず、テーブル上のすべてのTDにIDを追加する必要がありますSeat ID。たとえば、次のようになります。

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

次に、このIDをAjaxを使用してPHPスクリプトに送信します。

$("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を使用してシートにやりたいことを実行し、結果として戻るtrue必要があります。データベーステーブルにfalse名前付きのフィールドがあるとします。reserved一意のIDを取得して、その行をreserved = 1たとえばに更新できます。

于 2012-11-06T10:55:04.840 に答える
2

この使いやすいajaxスクリプトを試して、タスクを実行してください

beforeSend機能:セクションのdbにデータを送信する前にgif imgを表示し、セクション
のphpファイルから応答を取得します。セクションのdbにデータを挿入した後、imgを非表示にし、成功または失敗のメッセージを表示します。success
complete

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
于 2012-11-06T10:55:10.130 に答える
1

Javascriptはクライアント側です。データベースはサーバー側です。したがって、データベースエントリを変更するにはphpを使用する必要があります。

于 2012-11-06T10:45:34.117 に答える
1

つまり、ページをリロードせずにPHPのものを実行したい場合は、AJAXを使用します。お気に入りのJQueryで使用できます。

于 2012-11-06T10:49:47.270 に答える
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ステータスを変更します...:-)ここからajaxについて読んでください。:-)

于 2012-11-06T10:56:32.077 に答える