|
|
|
|
|
для: cheops
(13.03.2006 в 00:58)
| | Спасибо за ответ.
переменная $showhide - есть такое поле в базе данных (hide) - это и есть этот квадратик в файле add.php, а в файле add_1.php - отображается всё то, что выбрал в файле add_1.php.
Тогда как сделать, чтобы в файле (add_1.php) был бы квадратик (type="checkbox") и в нём бы отображалось (в зависимости была поставлена галочка или нет в файле add.php)? | |
|
|
|
|
|
|
|
для: jurij_83
(12.03.2006 в 21:15)
| | 1) Да, правильно.
2) В принципе вы правильно всё делает, а переменная $showhide откуда берётся в HTML-форме? | |
|
|
|
|
|
|
|
для: cheops
(12.03.2006 в 19:29)
| | 1. На сколько я понял, это нужно сделать так (всё правлю в файле add_1.php):
$_SESSION['subject_name'] = $_POST['subject_name'];
$_SESSION['subject_teacher'] = $_POST['subject_teacher'];
if(!empty($_SESSION['subject_name'])) $subject_name = $_SESSION['subject_name'];
if(!empty($_SESSION['subject_teacher'])) $subject_teacher = $_SESSION['subject_teacher'];
if(empty($_POST['subject_name'])) links("Vvesti name.");
if(empty($_POST['subject_teacher'])) links("Vvesti prepod.");
Так ли?
Ответьте!
2. И ещё вопрос: как сделать, чтобы в файле (add_1.php) был бы квадратик (type="checkbox") и в нём бы отображалось (в зависимости была поставлена галочка или нет в файле add.php).
По идее пишу
<p><strong>Pokazyvat: </strong><br />
<input type="checkbox" name="hide" <?= $showhide ?> /></p>
но это не то.
У меня сделано в (add_1.php) если показывать, то в файле add_1.php отображает hide, если показывать - то show.
<p><strong>Pokazyvat:</strong><br />
<?php echo "$showhide"; ?></p>
Это работает. Но как сделать (с отображением галочки в квадратике). Понятна ли суть? Большое спасибо (да, ваша книга очень хорошая - толковая).
Мои файлы:
add.php:
<?php
session_start();
if ($valid != "yes") {
header("Location: admin.php");
exit;
} else {
session_register('valid');
}
if(!isset($showhide)) $showhide = "checked";
?>
<form method="post" action="add_1.php">
<p><strong><span class="style36">* </span>Predmet </strong><br />
<input type="text" name="subject_name" size="35" value="<?= $subject_name ?>" /></p>
<p><strong><span class="style36">* </span>Prepody: </strong><br />
<input type="text" name="subject_teacher" size="35" value="<?= $subject_teacher ?>" /></p>
<p><strong>Pokazyvat: </strong><br />
<input type="checkbox" name="hide" <?= $showhide ?> /></p>
<input type="hidden" name="id" value="<?= $_GET['id'] ?>" />
<p><input type="submit" name="submit" value="Dobavit" class="textsimplas" /></p>
</form>
------------
add_1.php
<?php
session_start();
if ($valid != "yes") {
header("Location: admin.php");
exit;
} else {
session_register('valid');
}
require_once("config.php");
$_SESSION['subject_name'] = $_POST['subject_name'];
$_SESSION['subject_teacher'] = $_POST['subject_teacher'];
if(!empty($_SESSION['subject_name'])) $subject_name = $_SESSION['subject_name'];
if(!empty($_SESSION['subject_teacher'])) $subject_teacher = $_SESSION['subject_teacher'];
if(empty($_POST['subject_name'])) links("Vvesti name.");
if(empty($_POST['subject_teacher'])) links("Vvesti prepod.");
if($_POST['hide'] == "on") $showhide = "show";
else $showhide = "hide";
$subject_name = str_replace("'","'",$_POST['subject_name']);
$subject_teacher = str_replace("'","'",$_POST['subject_teacher']);
$sql = "INSERT INTO tablica VALUES (NULL,
'$subject_name',
'$subject_teacher', '$showhide')";
$result = @mysql_query($sql,$connection) or die("Error.");
function links($msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>Back</a></p>";
exit();
}
?>
<table cellspacing="3" cellpadding="5" class="textsimplas" border="0" align="center">
<tr>
<td valign="top">
<p><strong>Predmet:</strong><br />
<?php echo "$subject_name"; ?></p>
<p><strong>Prepody:</strong><br />
<?php echo "$subject_teacher"; ?></p>
<p><strong>Pokazyvat:</strong><br />
<?php echo "$showhide"; ?></p>
</td>
</tr>
</table>
</body>
</html> | |
|
|
|
|
|
|
|
для: jurij_83
(12.03.2006 в 15:44)
| | В обработчике HTML-формы следует написать
<?php
$_SESSION['subject_name'] = $_POST['subject_name'];
?>
|
а при формировании HTML-формы проверять
<?php
if(!empty($_SESSION['subject_name'])) $subject_name = $_SESSION['subject_name'];
?>
|
И так для каждого поля, которое входит в HTML-форму. | |
|
|
|
|
|
|
|
для: jurij_83
(12.03.2006 в 15:44)
| | Какие решения? | |
|
|
|
|
|
|
|
для: cheops
(12.03.2006 в 13:02)
| | Так а как мне теперь быть. Мне нужно и администрирование через сессию, и, чтобы дынные вводимые оставлялись.
А как это сделать:
помещайте всё что ввёл пользователь в сессию и выводите значения формы самостоятельно подставляя их в атрибуты value элементов управления.
Напишите. | |
|
|
|
|
|
|
|
для: jurij_83
(11.03.2006 в 22:31)
| | Это из-за session_start(); - либо убирайте его, тогда при возвращении назад поля будут заполнены, либо помещайте всё что ввёл пользователь в сессию и выводите значения формы самостоятельно подставляя их в атрибуты value элементов управления. | |
|
|
|
|
 2.2 Кб |
|
| Имею базу данных (4 поля):
subject_name
subject_teacher
hide
id
Прикрепляю все файлы...
Проблема в том, что я хочу проверить обязательные для заполнения поля (и если они не заполнены - выводится соответственное сообщение: заполните то и то). Но есть проблема: допустим заполнил только одно поле (второе оставил пустым). Жму submit (происходит refresh na add_1.php). Вылезает сообщение: заполните такое-то поле.
Рядом ссылка
echo "<p><a href=# onClick='history.back()'>Back</a></p>";
Жму её (возращаюсь на первоначальный файл add.php). И вижу (то поле, которое я заполнил уже ранее - оно пустое), хотя и указано (value):
<input type="text" name="subject_teacher" size="35" value="<?= $subject_teacher ?>" /></p>
И вся фишка в том, что если я убираю в файле add.php
<?php
session_start();
if ($valid != "yes") {
header("Location: admin.php");
exit;
} else {
session_register('valid');
}
?>
то данные в полях уже сохраняются (что мне и нужно). Всё дело в session_start(), как я понимаю. Но мне обязательно нужно администрирование (т.е. сделанное через сессию на проверку admin.php).
КАК МНЕ РЕШИТЬ ЭТУ ПРОБЛЕМУ? Чтобы была и проверка данных вв полях (их сохранение), но и администрирование через сессию.
Файл add.php:
<?php
session_start();
if ($valid != "yes") {
header("Location: admin.php");
exit;
} else {
session_register('valid');
}
?>
<form method="post" action="add_1.php">
<p><strong><span class="style36">* </span>Predmet </strong><br />
<input type="text" name="subject_name" size="35" value="<?= $subject_name ?>" /></p>
<p><strong><span class="style36">* </span>Prepody: </strong><br />
<input type="text" name="subject_teacher" size="35" value="<?= $subject_teacher ?>" /></p>
<p><strong>Pokazyvat: </strong><br />
<input type="checkbox" name="hide" <?= $showhide ?> /></p>
<input type="hidden" name="id" value="<?= $_GET['id'] ?>" />
</form>
-------------
Файл add_1.php:
<?php
session_start();
if ($valid != "yes") {
header("Location: admin.php");
exit;
} else {
session_register('valid');
}
require_once("config.php");
if(empty($_POST['subject_name'])) links("Vvesti name.");
if(empty($_POST['subject_teacher'])) links("Vvesti prepod.");
if($_POST['hide'] == "on") $showhide = "show";
else $showhide = "hide";
$subject_name = str_replace("'","'",$_POST['subject_name']);
$subject_teacher = str_replace("'","'",$_POST['subject_teacher']);
$sql = "INSERT INTO db VALUES (NULL,
'$subject_name',
'$subject_teacher',
'$showhide')";
$result = @mysql_query($sql,$connection) or die("Error.");
function links($msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>Back</a></p>";
exit();
}
?>
<table cellspacing="3" cellpadding="5" class="textsimplas" border="0" align="center">
<tr>
<td valign="top">
<p><strong>Predmet:</strong><br />
<?php echo "$subject_name"; ?></p>
<p><strong>Prepody:</strong><br />
<?php echo "$subject_teacher"; ?></p>
</td>
</tr>
</table>
</body>
</html>
Спасибо за помощь. | |
|
|
|
|