|
|
|
| Здравствуйте!
У меня такая проблема:
<?php
$db = mysql_connect("localhost","user","pass");
mysql_select_db("baza",$db);
$result = mysql_query("SELECT * FROM table", $db);
$myrow = mysql_fetch_array($result);
?>
<form action="index.php" method="post" name="z" target="_self">
<input name="1" type="submit" value="первая">
<input name="2" class="knopka" type="submit" value="вторая">
</form>
<?php
$name=$_POST['name'];
?>
Хочу выводить $myrow['title'], где $myrow['id'] = имя кнопки
Можно ли воспользоваться именем кнопки? Как это сделать? | |
|
|
|
|
|
|
|
для: alexey
(22.04.2011 в 15:47)
| | >где $myrow['id'] = имя кнопки
Поле id равно строке "первая" или "1"? | |
|
|
|
|
|
|
|
для: cheops
(22.04.2011 в 15:55)
| | Поле id равно строке "первая" или "1"?
1 | |
|
|
|
|
|
|
|
для: alexey
(22.04.2011 в 15:47)
| |
<?php
$db = mysql_connect("localhost","user","pass");
mysql_select_db("baza",$db);
$result = mysql_query("SELECT * FROM table", $db);
$myrow = mysql_fetch_array($result);
?>
<form action="index.php" method="post" name="z" target="_self">
<?php
while($myrow = mysql_fetch_array($result)) {
echo "<input name='".$myrow['id']." class=knopka type=submit value='".$myrow['title']."'>";
}
?>
</form>
<?php
$name=$_POST['name'];
?>
|
либо наоборот - смотря что нужно | |
|
|
|
|
|
|
|
для: lotanaen
(22.04.2011 в 17:19)
| | Спасибо за ответ.
Я немного другое имел ввиду.
У меня в базе данных есть таблица, в которой два поля (id) и (title). В кнопке (<input name="1" type="submit" value="неважно">) имя единица, соответствует идентификатору id в таблице (т.е. name(кнопка)==id(таблица)). Как мне вывести результат после срабатывания кнопки. Т.е. если кликнут <input name="1" type="submit" value="неважно">, то надо вывести $myrow['title']. | |
|
|
|
|
|
|
|
для: alexey
(22.04.2011 в 22:04)
| | Можно начать отталкиваться от следующего скрипта
<?php
$db = mysql_connect("localhost","user","pass");
mysql_select_db("baza",$db);
?>
<form action="index.php" method="post" name="z" target="_self">
<input name="1" type="submit" value="первая">
<input name="2" class="knopka" type="submit" value="вторая">
</form>
<?php
foreach($_POST as $key => $value)
{
$key = intval($key);
if($key)
{
$query = "SELECT title FROM table
WHERE id = $key
LIMIT 1";
$result = mysql_query($query, $db);
if(!$result) exit("Ошибка выполнения запроса - ".mysql_error());
echo mysql_result($result, 0);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(22.04.2011 в 23:07)
| | Спасибо | |
|
|
|
|
|
|
|
для: cheops
(22.04.2011 в 23:07)
| | Подскажите, пожалуйста, как выводить кнопки на экран последовательно, например, сработала <input name="2" class="knopka" type="submit" value="вторая"> вывелась "вторая", затем сработала <input name="1" type="submit" value="первая"> вывелась "первая" под второй. Т.е. "вторая" остается на экране и в массиве, наверно. Даже не наверно, а желательно | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 12:30)
| | Перезагрузка страницы допустима, или кнопки должны появляться и исчезать без перезагрузки страницы?
PS Под новые вопросы лучше заводить новые темы. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2011 в 12:35)
| | Допустима, потому что таких страниц с кнопками 10 штук и на каждой будет вывод своих занчений с кнопок и значений с предыдущих страниц. Поэтому думаю нужно загнать в массив что бы с этим данными работать на следующей странице.
PS буду знать. | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 12:45)
| | А как вы получаете имена этих кнопок и задаете порядок их отображения? Т.е. как узнать, что эта кнопка должна выводиться раньше, чем соседняя? | |
|
|
|
|
|
|
|
для: cheops
(26.04.2011 в 12:47)
| | 10 страниц на каждой по 10 кнопок. Кнопки видны сразу, после нажатия на определенную, например, <input name="1" type="submit" value="первая"> срабатывает
<?php
foreach($_POST as $key => $value)
{
$key = intval($key);
if($key)
{
$query = "SELECT title FROM table
WHERE id = $key
LIMIT 1";
$result = mysql_query($query, $db);
if(!$result) exit("Ошибка выполнения запроса - ".mysql_error());
echo mysql_result($result, 0);
}
}
?>
Нужно что бы после нажатия <input name="1" type="submit" value="первая"> не исчезал вывод предыдущей кнопки. | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 12:55)
| | А вот этот обработчик он в какой файле расположен? В том же, что и 10 кнопок? Что если его разместить на той же странице, где и форма с кнопками, тогда нажатие на кнопку будет вести на эту же страницу и кнопки будут отображаться и результат, выдаваемый обработчиком? | |
|
|
|
|
|
|
|
для: cheops
(26.04.2011 в 12:57)
| | У меня так и есть обработчик на этой же странице
<?php
foreach($_POST as $key => $value)
{
$key = intval($key);
if($key)
{
$query = "SELECT title FROM table
WHERE id = $key
LIMIT 1";
$result = mysql_query($query, $db);
if(!$result) exit("Ошибка выполнения запроса - ".mysql_error());
echo mysql_result($result, 0);
}
}
?>
Только после нажатия на следущую кнопку значения предыдущей исчезает, а надо что бы оставалось и мало того сохранялось при переходе на другую страницу | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 13:10)
| | Проблему можно решить выпадающим списком, но это не удобно. Люди же любят щелкать по кнопкам | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 13:10)
| | Не очень понятно, исчезает кнопка или результат предыдущего нажатия на кнопку, который вы выводите при помощи следующей строки?
echo mysql_result($result, 0);
|
| |
|
|
|
|
|
|
|
для: cheops
(26.04.2011 в 13:15)
| | Исчезает результат. А если и кнопка будет исчезать то это счастье | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 13:21)
| | Исчезает результат - плохо. Если возможно, что после нажатия на кнопку, результат выводился и не исчезал, а кнопка исчезала - очень хорошо | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 13:21)
| | Давайте возьмем облегченный пример, который вы в дальнейшем сможете использовать как каркас. А саму задачу разобъем на три этапа (1. обработка нажатия кнопок и запоминание их номеров, 2. вывод формы без нажатых кнопок, 3. вывод результатов нажатия на кнопки, которые мы ранее запомнили). Ниже приводится скрипт, от которого можно отталкиваться.
<?php
// Инициируем сессию
session_start();
if(!isset($_SESSION['buttons'])) $_SESSION['buttons'] = array();
// 1. Определяем не нажата ли кнопка
if(!empty($_POST))
{
for($i = 1; $i < 11; $i++)
{
if(!empty($_POST[$i]))
{
// Обнаруживаем нажатие кнопки, запоминаем,
// что она нажата в сессии
$_SESSION['buttons'][] = $i;
// Покидаем цикл
header("Location: index.php");
exit;
}
}
}
// 2. Форма
echo "<form method='post'>";
for($i = 1; $i < 11; $i++)
{
// Выводим только ненажатые кнопки
if(!in_array($i, $_SESSION['buttons']))
{
echo "<input type='submit' name='$i' value='Кнопка N $i' />";
}
}
echo "</form>";
// 3. Выводим результаты нажатия кнопок
for($i = 0; $i < count($_SESSION['buttons']); $i++)
{
echo "Была нажата кнопка N ".$_SESSION['buttons'][$i]."<br />";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.04.2011 в 13:38)
| | Спасибо большое! Попробую | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 12:45)
| | Я почти весь нэт перерыл, даже близко не нашел решения | |
|
|
|
|
|
|
|
для: alexey
(26.04.2011 в 12:48)
| | Я думаю, что-нибудь подходящее придумаем, просто нужно больше подробностей о вашей задаче и окружении (где, что хранится, откуда брать, может даже какой-нибудь конкретный пример можно разобрать (кнопка1, кнопка2 и т.п.), чтобы остальное делать по аналогии). | |
|
|
|