Здравствуйте. Такой вопрос, как сделать чтобы выбранные пользователем радиокнопки сохранялись? Код (Text): echo "<form name='form' method='get'>"; for ($i=1; $i<$n+1; $i++) { $sql_data = mysql_fetch_array($row1); $ch1 = array($choice,$i); $ch = implode($ch1); // echo $ch; print "Вопрос № ".$record.": </b>"; echo $sql_data['question']."<br />"; echo "<input name='".$ch."' type='radio' value='".$sql_data['r_answer']."'>"; print "1) ".$sql_data['r_answer']."<br />"; echo "<input name='".$ch."' type='radio' value='".$sql_data['w_answer1']."'>"; print "2) ".$sql_data['w_answer1']."<br />"; echo "<input name='".$ch."' type='radio' value='".$sql_data['w_answer2']."'>"; print "3) ".$sql_data['w_answer2']."<br />"; echo "<input name='".$ch."' type='radio' value='".$sql_data['w_answer3']."'>"; print "4) ".$sql_data['w_answer3']."<br />"; echo "<input name='".$ch."' type='radio' value='".$sql_data['w_answer4']."'>"; print "5) ".$sql_data['w_answer4']."<br /><br />"; $record=$record+1; /* echo "<input type='submit' value='Далее' name='ok'></br>";*/ } echo '</form>'; // если страница не первая, выводим ссылку "Назад" echo "<table align='center'><tr><td>"; if ($page > 0) { $p = $page-1; echo "<a href=test.php?page=$p><-Назад</a></td>"; } $page++; // увеличиваем страницу // выводим ссылку на следующие пять записей (на след. страницу), // если она есть, то есть число записей, которые нужно вывести, и // смещение не превышают общего числа записей if ($records+$N < $rec) { echo "<td><a href=test.php?page=$page>Далее-></a></td></tr>"; } echo "</table>"; Часть кода где радиокнопки. У меня постраничный вывод, ходя по страницам формы обнуляются, а как сохранить и показывать выбранные пользователем радиокнопки?
Re: Как сохранить значения радиокнопки при постраничном выво Радиокнопок всегда 4-5 штук на каждый вопрос, а вопросов в базе будет столько сколько преподаватель сделает. Это тест для студентов. Весь комплекс делаю на Joomla. Никогда не сталкивалась с сессиями, попробую поискать.
только с помощью javascript. например так: Код (PHP): <?php $myradio = isset($_GET['myradio']) ? $_GET['myradio'] : 'A'; $p = isset($_GET['p']) ? $_GET['p'] : '1'; $self_url = $_SERVER['PHP_SELF']; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en"> <head> <title>Radio button trick</title> <script type="text/javascript"> function go(page) { form = document.getElementById('myform'); form['p'].value = page; form.submit(); return false; } </script> </head> <body> <form id="myform" action="<?php echo $self_url ?>" method="get"> <input type="hidden" name="p" value="<?php echo $self_url ?>" /> <p> <label><input type="radio" name="myradio" value="A" <?php if ($myradio == 'A') echo ' checked="checked"' ?>/>Option A</label><br /> <label><input type="radio" name="myradio" value="B" <?php if ($myradio == 'B') echo ' checked="checked"' ?>/>Option B</label><br /> <label><input type="radio" name="myradio" value="C" <?php if ($myradio == 'C') echo ' checked="checked"' ?>/>Option C</label><br /> </p> <p>This is page #<?php echo $p ?></p> <p>Pages: <?php for ($i = 1; $i <= 10; ++$i) { if ($i == $p) echo "\t\t<strong>{$i}</strong> "; else echo "\t\t<a href=\"#\" onclick=\"return go({$i})\">{$i}</a> "; } ?> </p> </form> </body> </html> при клике на ссылку нужный номер страницы записывается в hidden поле формы, затем происходит отсылка формы. еще можно, наверное, вместо ссылок разместить кнопки формы, замаскировать их под ссылки с помощью CSS, тогда можно обойтись без js
Re: Как сохранить значения радиокнопки при постраничном выво Это все хорошо, но тут одни радиокнопки на все страницы, а у меня на каждой странице свой набор радиокнопок. Я попробую спасибо большое) А с сессиями не выйдет скорее всего, joomla не позволяет мне передавать что-либо через url.
Re: Как сохранить значения радиокнопки при постраничном выво По моему ты что-то путаешь Причем тут сессии и передавать что-либо через url. Посмотри здесь php.net/manual/ru/features.sessions.php В джумле для сессий есть класс по моему так JFactory::getSession()
чуть измененный вариант c javascript: форма посылается методом POST, а номер страницы задается в её action. добавил кнопку Submit. нельзя же посылать данные только переходами по страницам ))) должен быть и нормальный способ Код (PHP): <?php $myradio = isset($_POST['myradio']) ? $_POST['myradio'] : 'A'; $p = isset($_GET['p']) ? $_GET['p'] : '1'; $self_url = $_SERVER['PHP_SELF']; ?> <!DOCTYPE html> <html> <head> <title>Radio button trick</title> <script type="text/javascript"> function go(ev) { var ref = ev.href var pageNum = ref.substring(ref.indexOf('?p=') + 3) var form = document.getElementById('myform') form.action = '<?php echo $self_url ?>?p=' + pageNum form.submit() return false } </script> </head> <body> <h2>This is page #<?php echo $p ?></h2> <form id="myform" action="<?php echo $self_url ?>?p=<?php echo $p ?>" method="post"> <fieldset> <p> <label><input type="radio" name="myradio" value="A" <?php if ($myradio == 'A') echo ' checked="checked"' ?>/>Option A</label><br /> <label><input type="radio" name="myradio" value="B" <?php if ($myradio == 'B') echo ' checked="checked"' ?>/>Option B</label><br /> <label><input type="radio" name="myradio" value="C" <?php if ($myradio == 'C') echo ' checked="checked"' ?>/>Option C</label><br /> </p> <p><input type="submit" value="Submit" /> </fieldset> <p>Pages: <?php for ($i = 1; $i <= 10; ++$i) { if ($i == $p) echo "\t\t<strong>{$i}</strong>\n"; else echo "\t\t<a href=\"{$self_url}?p={$i}\" onclick=\"return go(this)\">{$i}</a>\n"; } ?> </p> </form> </body> </html> Добавлено спустя 1 минуту 29 секунд: Re: Как сохранить значения радиокнопки при постраничном выводе? да уж попробуй. я за тебя курсовую не решаю, просто подсказываю метод. а дальше сама
Re: Как сохранить значения радиокнопки при постраничном выво "session.use_cookies - если равно 1, то PHP передает идентификатор в cookies, если 0 - то нет. session.use_trans_sid если равно 1, то PHP передает его, добавляя к URL и формам, если 0 - то нет. Если включена только вторая, то cookies не выставляется. А происходит то, ради чего, в основном, собственно, и стоит использовать встроенный механизм сессий. После того, как скрипт выполняет свою работу, и страница полностью сформирована, PHP просматривает ее всю и дописывает к каждой ссылке и к каждой форме передачу идентификатора сессии. " (c) php.su Вот отсюда взяла. Поскольку неизвестно включены ли будут cookies там где будут работать над тестом, пойдет второй метод, но он через url передает. А в Joomla через url отказывается что-либо передавать, выводя просто на главную. Поэтому я там методом post пользуюсь)
Re: Как сохранить значения радиокнопки при постраничном выво Очень хорошо что ты можешь пользоваться гуглом, я рад этому! Но у большинства людей, как мне кажется, cookies будет включены, многие даже не знают о cookies. Можно поставить проверку включены cookies или нет. Ну а вообще главное что бы все работало правильно, если тебе удобней пользоваться post пользуйся.
Re: Как сохранить значения радиокнопки при постраничном выво вот тебе пример опросника. в read_quiz формируется случайный текст вопросов и ответов. можешь заменить на осмысленный http://zalil.ru/33032104 джумла не нужна
Re: Как сохранить значения радиокнопки при постраничном выво Спасибо большое! Буду разбираться в коде. Замечательный код, а главное кажется просто. Просто этот тест будет в книге, которую нам надо сделать, а мы её делаем в Joomla как сайт)
Re: Как сохранить значения радиокнопки при постраничном выво Ребят, я новичок - программирую меньше месяца и тоже столкнулся с этой проблемой. Писал на денвере, интернет на тот момент не работал и пришлось кумекать с книжками, написал свой велосипед=) Благо браузер смотрит параметр радио кнопки по последней, может кто и применит, проверил на кроссбраузерность данную штуку, всё ок)) Код (Text): <form method="get"> <input id="search1" name="search" value="<?php echo $_GET['search'];?>" placeholder="Что ищем?" maxlength="100" spellcheck="false" autocomplete="off"/> <input id="search2" type="submit" value="искать"/> <?php $check="checked=\"checked\"";?> <input type="radio" <?php if($_GET['button']==all) {echo $check;} else{echo $check;}?> name="button" value="all"/>По всем <input type="radio" <?php if($_GET['button']==noreg) {echo $check;}else{};?> name="button" value="noreg"/>Без регистрации </form>
Re: Как сохранить значения радиокнопки при постраничном выво Alex_PS, кажется ты не понял о чем тема.