Доброго времени суток! Делаю всплывающее окно для редактирования элементов таблицы в базе. При нажатии на ссылку в строке, выскакивает форма, с уже заполненными елементами, которые можно редактировать. Все работает, но не могу передать параметр id выбранной строки, по-этому мне выдает первую строку базы. Вот ссылка: Код (Text): href=\" \" onclick=\"openbox2('hide-layout2','popup2');return false;\">Редактировать</a> мне нужно что-то типа Код (Text): href=\"delete.php?id_user=".$row["id_user"]." , только чтобы ссылка была сама на себя.
а что создает таблицу ? и как ведь если она создается php то можно ведь сделать так как вы написали, да и не мешало какойнить пример посмотреть
так, как я написал - не получается, так как все выводится без перезагрузки страницы. В каждой строке таблицы есть ссылка(показано выше), при нажатии на которую вызывается ф-я: Код (Text): <link rel="stylesheet" type="text/css" href="popup.css"> <script type="text/javascript"> function openbox2(id,popup2) { var div2 = document.getElementById(id), popupdiv = document.getElementById(popup2); if(div2.style.display == 'block') { div2.style.display = 'none'; popupdiv.style.display = 'none'; } else { div2.style.display = 'block'; popupdiv.style.display = 'inline'; } } </script> <div id="hide-layout2" class="my-hide-layout" style="display:none;" ></div> <div id="popup2" class="my-popup" align="center" style="display:none;"> <h2 class="popup-title"> <button id="btn3" class="btn3" onclick="openbox2('hide-layout2','popup2')">x</button> <p> Редагування працівника </p></h2> // тут форма вывода с заполненными полями mysql_close(); ?> </div> Добавлено спустя 7 минут 12 секунд: Вот форма вывода. Код (Text): <?php $hostname = "localhost"; $username = "root"; $password = "secret_len"; $dbName = "phone_directory"; $table = "users"; $id = $_GET['id_user']; mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение"); mysql_select_db($dbName) or die (mysql_error()); if( isset($_GET['id_user']) && !empty($_GET['id_user'])) { $query = "UPDATE $table SET surname='".$_POST['surname']."', name='".$_POST['name']."', department1='".$_POST['department1']."', department2='".$_POST['department2']."', position='".$_POST['position']."', phone1='".$_POST['phone1']."', phone2='".$_POST['phone2']."', phone3='".$_POST['phone3']."', phone4='".$_POST['phone4']."', email='".$_POST['email']."' WHERE id_user=$id"; mysql_query($query) or die (mysql_error()); } $query = "SELECT * FROM $table order by surname"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_num_rows($result); $row = mysql_fetch_array($result); echo "<form action=\"popup_update.php\" method=\"post\" name=\"edit_form\">\n <input type=\"hidden\" name=\"update\" value=\"".$row["id_user"]."\" />\n <table cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\n id=$id <tr>\n <td height=\"40\" colspan=\"20\" ><b><i><div id=\"num\"> <h2> ".$row["surname"]."</div></h2><h2>".$row['name']."</b></i></td>\n </h2> </tr><tr>\n <td>Прізвище: </td><td><input type=\"text\" value=\"".$row['surname']."\" name=\"surname\" /></td>\n </tr><tr>\n // и так далее echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Зберегти\" /></td>\n"; echo "</tr></table></form>\n\n"; Это редактируемые поля, в которые уже заранее занесены элементы выбранной строки. Но так, как id у меня передать не получается, то оно отображает только первую строку.
ты же суеш туда ид пользователя - вот же строчка Код (Text): <input type=\"hidden\" name=\"update\" value=\"".$row["id_user"]."\" />\n чет я не пойму никак что тогда еше надо .. видимо я тупой
Мне надо, чтобы id отображалось в этой строчке: Код (Text): $query = "SELECT * FROM $table WHERE id_user='$id'"; если жестко прописывать id_user='14', то идет нормально. Как мне нажатием на эту ссылку Код (Text): <a href=\" \" onclick=\"openbox2('hide-layout2','popup2');return false;\" >Редактировать</a> передать параметр id той строки, возле которой была нажата эта ссылка (ссылки отображаются напротив каждой строчки, в таблице)
Пошло, ура! Большое спасибо. Только чуть правочка: Код (Text): $id = $_GET['id_user']; $query = "SELECT * FROM $table WHERE id_user=".$id.";"; а вывод сам на себя, оч просто) Код (Text): <a href=\"popup_update.php?id_user=".$row["id_user"]." \" onclick=\"openbox2('hide-layout2','popup2');return false;\" >Редактировать</a> Всем спасибо!!
Код (PHP): $query = "SELECT * FROM $table WHERE id_user=".$id.";"; не нужна точка с запятой в запросе и у тебя дырка в безопасности. в $_GET['id_user'] может быть не только то что ты хочешь, но и другой запрос, бережно засунутый туда хакером.