У меня есть столбец в таблице, объявленный следующим образом: (file index.php) echo ''; Затем этот скрипт считывает данные в строке нажатой кнопки и отправляет ее в другой файл php:
<!-- scripts that gets the lecturer chosen to SHOW functionality--> <script> $(document).ready(function(){ $(".show-button").click(function() { var $row = $(this).closest("tr"); // Find the row var names = $row.find(".name").text(); // Find the name var surname = $row.find(".surname").text(); // Find the surname $.ajax({ type: "POST", url: "show_lecturer.php", data: { x: names, y: surname} }) }); }); </script>
Этот файл (show_lecturer.php) хранит данные, прочитанные в таблице (keep_track) в базе данных: (файл show_lecturer.php)
<?php ob_start(); //eliminates buffer collisions require_once('connect_db.php'); $name = $_POST['x']; $surname = $_POST['y']; $result = pg_query(connect(), "INSERT INTO keep_track VALUES ('$name', '$surname')"); ?>
Затем я создаю пустой диалог с jquery, чтобы заполнить его данными, взятыми из базы данных: (file index.php)
<!-- The following script generates the empty dialog box --> <script src="/js/jquery.min.js"></script> <link rel="stylesheet" href="/css/jquery-ui.css"> <script src="/js/jquery-ui.min.js"></script> <script> $(function() { //show lecturer dialog $("#show_dialog").dialog({autoOpen: false}); $(".show-button").on("click", function() {$("#show_dialog").dialog("open");}); }); </script>
Затем эти данные берутся из таблицы keep_track и повторяются в предыдущем диалоговом окне: (file index.php)
$name; $surname; require_once('connect_db.php'); $firstname = pg_query(connect(), "SELECT name FROM keep_track"); while($row = pg_fetch_array($firstname)){ $name = $row['path']." ".$row['name']; } $lastname = pg_query(connect(), "SELECT surname FROM keep_track"); while($row = pg_fetch_array($lastname)){ $surname = $row['path']." ".$row['name']; } echo '<div id="show_dialog" class="ui-dialog-content ui-widget-content">'; echo $name."".$surname; echo '</div>'; ?>
Поэтому, когда я нажимаю кнопку строки x, открывается диалоговое окно с данными из строки x.
Единственное, что работает неправильно: момент, когда я нажимаю кнопку x, открывает диалоговое окно, но отображает значение, но не значение строки x. Однако, когда я вижу базу данных, там хранится строка x. Значение в флажке имеет значение кнопки, нажатой до последнего обновления на странице. Как будто в моей цепочке звонков есть что-то (что я не могу понять, вот почему я спрашиваю).
Чтобы проиллюстрировать данные, я получаю: (Изначально таблица keep_track пуста)
Press button 1 -> row 1 stored, dialogbox has no content Press button 2 -> row 2 stored, dialogbox has no content Press button 3 -> row 3 stored, dialogbox has no content Refresh page manually Press button 4 -> row 4 stored, dialogbox has content from row 3 Press button 5 -> row 5 stored, dialogbox has content from row 3 Refresh page manually Press button 6 -> row 6 stored, dialogbox has content from row 6 Press button 7 -> row 7 stored, dialogbox has content from row 3