|
|
|
| Здравствуйте! Помогите, пожалуйста, решить проблему:
Код:
<form action="otk.php" method="post">
<input name="a85” type="submit" value="Пропустить"><br>
<input name="a2" type="submit" value="2 этапа"><br>
<input name="a4" type="submit" value="4 этапа "><br>
<input name="a84" type="submit" value="новый день"><br>
<?php
echo "<table class='tableu'>
<tr width='750 px'>
<td >Номер этапа</td>
<td >Отк</td>
</tr>";
$namber_day=1;
$buttons = array ();
if ( isset ($_COOKIE['buts'])) {
$buts = $_COOKIE['buts'];
$buttons = explode ("#", $buts);
}
foreach ($buttons as $id)
{
if ($id)
{
$name = substr ($id, 1);
if ($name == "85")
{
echo "<tr>
<td ></td>
<td > Без отк</td>
</tr>";
elseif ($name == "84")
{
echo "<tr>
<td ></td>
<td > Номер дня $namber_day</td>
</tr>"; $namber_day++;
} else {
$query = "SELECT title FROM otk WHERE id = $name LIMIT 1";
$result = mysql_query($query, $db);
if (!$result) { exit ("Ошибка выполнения запроса - ".mysql_error());}
do {
if ($namber_upr) {
printf (
"<td></td>
<td class='tdu'>%s</td>
</tr>", mysql_result($result, 0);}
} while ($result<=$buts);
}
if ( current ($buttons)!="85" and current ($buttons)!="84" and prev ($buttons)!="84" and prev ($buttons)=="85")
{echo "<tr>
<td ></td>
<td > Номер дня $namber_day</td>
</tr>"; $namber_day++;
} }
echo "</table>";
?>
Проблема в последнем if. Не получается выводить "Номер дня $namber_day" при условиях "if ( current ($buttons)!="85" and current ($buttons)!="84" and prev ($buttons)!="84" and prev ($buttons)=="85")".
Почему не работает эта часть кода? | |
|
|
|
|
|
|
|
для: Чайчайвыручай
(16.06.2011 в 14:52)
| | Пытался сделать так:
$x = count($buttons);
$ley = array_search ('a85', $buttons);
if ($x=$ley)
{echo "<tr>
<td ></td>
<td > Номер дня $namber_day</td>
</tr>"; $namber_day++;}
}
$x="";
Тоже не выходит.
Если по русски то нужно, что бы новый день ($namber_day) начинался не только после нажатия кнопки с value="новый день", но и после нажатия кнопки value="2 этапа" или value="4 этапа”, если до этого была нажата кнопка value="Пропустить". | |
|
|
|
|
|
|
|
для: Чайчайвыручай
(16.06.2011 в 14:52)
| | Функция current() что делает? | |
|
|
|
|
|
|
|
для: cheops
(16.06.2011 в 15:00)
| | Определяет текущий элемент массива | |
|
|
|
|
|
|
|
для: Чайчайвыручай
(16.06.2011 в 15:02)
| | Т.е. вы привязываетесь к последнему элементу из цикла? Лучше что-то более простое сделать. При каких условиях должен сработать этот последний if-блок (что для этого должен сделать пользователь)? | |
|
|
|
|
|
|
|
для: cheops
(16.06.2011 в 15:08)
| | Т.е. вы привязываетесь к последнему элементу из цикла?
Да.
При каких условиях должен сработать этот последний if-блок (что для этого должен сделать пользователь)?
Если по русски то нужно, что бы новый день ($namber_day) начинался не только после нажатия кнопки с value="новый день", но и после нажатия кнопки value="2 этапа" или value="4 этапа”, если до этого была нажата кнопка value="Пропустить". | |
|
|
|
|
|
|
|
для: Чайчайвыручай
(16.06.2011 в 15:11)
| | Т.е. Если предпоследняя кнопка была value="Пропустить", при нажатии на кнопки value="2 этапа" или value="4 этапа”, выводится не просто "2 этапа", а друг за другом "новый день" "2 этапа". | |
|
|
|
|
|
|
|
для: Чайчайвыручай
(16.06.2011 в 15:11)
| | Тогда проще отталкиваться от блока
if(!empty($_POST['a2']) || !empty($_POST['a4']) || !empty($_POST['a84']))
{
// Нажата одна из трех кнопок
...
}
|
>если до этого была нажата кнопка value="Пропустить".
А вот это лучше запоминать в сессии, более того, лучше отдельно реализовать функцию id_missed(), которая будет возвращать true, если кнопка нажата и false в противном случае. С такой функцией вам будет гораздо проще реализовать скрипт. Иначе он у вас лавинообразно будет усложняться и его разработка и сопровождение потребует массы времени. | |
|
|
|
|
|
|
|
для: cheops
(16.06.2011 в 15:28)
| | Спасибо за ответ. Массу времени я уже потратил на поиск решения, но вроде так его и не нашел | |
|
|
|
|
|
|
|
для: Чайчайвыручай
(16.06.2011 в 16:43)
| | У вас слишком усложнена задача - разбивайте её на более мелкие задачи и оформляйте их в виде функций - будет проще. Чем сложнее и объемнее кусок кода, тем больше на него времени уходит. | |
|
|
|