Поэтому у меня есть страница php, которая получает данные из базы данных и отображает таблицу. Каждый тд символизирует место в кинотеатре. То, что я хочу сделать, – это когда пользователь нажимает один или несколько tds и нажимает кнопку send, столбец статуса для каждого td в базе данных изменяется на 1 от 0 (по умолчанию). Когда доступ к базе данных будет получен в следующий раз, у td со статусом = 1 будет другой цвет. Мой код до сих пор:
<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); })
Я нигде не приближаюсь к тому, что хочу, и мне жаль, если какой-либо из моих кодов «amatuer-ish», но я новичок в этом, и я очень стараюсь. Поблагодарите любую помощь, которую я смогу получить.
Прежде всего, вы должны добавить ID для каждого TD на свой стол, то есть Seat ID
, например:
echo "<td id='Seat_A' data-seat='". $row['id'] ."'class='count'>" . $row['Seat'] . "</td>";
Затем отправьте этот идентификатор в ваш 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 вы должны делать то, что хотите, с этим идентификатором и возвращать true
или false
в результате. Предположим, у вас есть поле с именем, reserved
в вашей таблице базы данных. Вы можете получить уникальный идентификатор и обновить эту строку до reserved = 1
например.
Попробуйте этот простой в использовании сценарий ajax для выполнения вашей задачи
Особенности: вы можете показать gif img перед отправкой данных в db в разделе beforeSend
получить ответ от php-файла в разделе success
скрыть img после вставки данных в db в 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
Javascript – клиентская сторона. Ваша база данных является серверной. Поэтому вам нужно использовать php для изменения записей в базе данных.
Короче говоря, если вы хотите выполнить PHP-материал без перегрузки страницы, чем использовать AJAX. Вы можете использовать его с вашим любимым JQuery .
Это обзор. Для существующих записей вам должно быть что-то вроде этого
<?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
вы измените статус … 🙂 Читайте об аяксе отсюда . 🙂