Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> isset 
V
    Опции темы
namra
Дата 13.6.2013, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Здравствуйте, на страничке несколько кнопок при нажатии на любую из кнопок сначала должно произойти  вывод вопроса с вариантами ответа, далее как получили вопрос с ариантами выбираем вариант ответва вот тут и не пойму как сделать т.е. как получить значение radiobutton'a, пробывал где за комментировано проверить на наличие ничего не обрабатывает
Код

     // если нажата кнопка
    if (isset($_POST['btn'])){
       $vop_result = mysql_query("select * from test_qbank where id='".$_POST['btn']."'")
        or die(mysql_error());
        $vopdata = mysql_fetch_array($vop_result);
        echo '<br/>';
        echo $vopdata['vopr'];
      
     /*  if (isset($_POST['rbutton'])){
                  echo $_POST['rbutton'];                 
        }*/

        echo '<form method="post">';
        echo '<p class="variant">A) <input type="Radio" name="rbutton" value="A"></p>   
                 <p class="variant">B) <input type="Radio" name="rbutton" value="B"> </p>  
                 <p class="variant">C) <input type="Radio" name="rbutton" value="C"> </p>  
                <p class="variant"> D) <input type="Radio" name="rbutton" value="D"></p>   
               <p class="variant">  E) <input type="Radio" name="rbutton" value="E"></p>';
        echo '</form>';

        }


Это сообщение отредактировал(а) namra - 13.6.2013, 13:46
PM MAIL   Вверх
terranova
Дата 13.6.2013, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.6.2013

Репутация: нет
Всего: нет



Код

echo "$_REQUEST['rbutton']";


Это сообщение отредактировал(а) terranova - 13.6.2013, 13:42
PM MAIL   Вверх
namra
Дата 13.6.2013, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



terranova, и куда вставлять ваш код выдает ошибки, не могу получить значение radibutton'a без кнопки 

Это сообщение отредактировал(а) namra - 13.6.2013, 13:52
PM MAIL   Вверх
krundetz
Дата 13.6.2013, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



namra, стоит выбрать значение по умолчанию например так:
Код

<input type="Radio" name="rbutton" value="A" checked="checked"/>

очень похоже что у вас просто не приходят данные.

Либо вы их не в том месте ловите.
Код

if (isset($_POST['btn'])) {
 ...
}
      
if (isset($_POST['rbutton'])){
 ...
}

если я правильно вас понял то у вас проверки должны быть на одном уровне.

А вообще привели бы вы тут полностью весь код, а не этот странный обрывок.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Gromdron
Дата 13.6.2013, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.9.2006

Репутация: 1
Всего: 1



Ясное дело он выдает ошибку - ведь $_REQUEST['rbutton'] до отправки не было.

Вообще корректнее было бы написать так:

Код

$rbutton= (isset($_REQUEST['rbutton']))? $_REQUEST['rbutton'] : false;

(не забывает фильтрацию пользовательских данных)
или в крайнем случае так:

Код

$rbutton = @$_REQUEST;


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Gromdron
Дата 13.6.2013, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.9.2006

Репутация: 1
Всего: 1



Прошу прощения, не освоился еще с новой клавиатурой

Код

$rbutton = @$_REQUEST['rbutton'];


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
namra
Дата 13.6.2013, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



krundetz,  вот весь код странички
Код

$temid= $_GET['id']; //получаем id  темы
    // достаем запросом какому id соответствует данная тема
   $qr_result = mysql_query("select testtem from test_tem where id='".$temid."'")
     or die(mysql_error());
   $data = mysql_fetch_array($qr_result);
   $tem = $data['testtem']; // сохраняем тему в переменной

   // выборка всех вопросов соответствующих теме из банка вопросов
    $data_result = mysql_query("select * from test_qbank where tem='".$tem."'")
     or die(mysql_error());
     echo '<br/>';
     
    //вывод кол-ва кнопок    
     echo '<form method="post">';
     $num=1;
     while($voprid=mysql_fetch_array($data_result)){          
       echo '<button type="submit" name="btn" class="vop" value="'.$voprid['id'].'">'.$num++.'</button>';
     }
     echo '</form>';

     
     // если нажата кнопка
       if (isset($_POST['btn'])){
       $vop_result = mysql_query("select * from test_qbank where id='".$_POST['btn']."'")
        or die(mysql_error());
        $vopdata = mysql_fetch_array($vop_result);
        echo '<br/>';
        echo $vopdata['vopr'];
           

        echo '<form method="post">';
        echo '<p class="variant">A) <input type="Radio" name="rbutton" value="A"></p> 
                <p class="variant">   B) <input type="Radio" name="rbutton" value="B"> </p> 
                <p class="variant">  C) <input type="Radio" name="rbutton" value="C"> </p>  
                <p class="variant">D) <input type="Radio" name="rbutton" value="D"></p>   
                <p class="variant">E) <input type="Radio" name="rbutton" value="E"></p>';
        echo '</form>';
              

        }
    
               if (isset($_POST['rbutton'])){
                     echo $_POST['rbutton'];
                   }
                   else
                   {
                      echo 'Error';
                   }



PM MAIL   Вверх
namra
Дата 13.6.2013, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Нашел вот такой скрипт который проверяет какой выбран radiobutton, а как сохранить его ответ в переменную php

Код

<script>
$( "input" ).on( "click", function() {
  $( "#log" ).html( $("input:checked").val()  );
});
</script>


Код

<div id="log"></div>


Это сообщение отредактировал(а) namra - 13.6.2013, 20:55
PM MAIL   Вверх
Arantir
Дата 13.6.2013, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



namra, перестаньте воспринимать клиентскую и серверную части как нераздельное целое.
То, что Вы вывели в браузер пользователя форму, еще не значит, что сервер вообще что-то должен знать про эту форму. 

То, что в Вашем скрипте PHP и HTML в перемешку, лишь сбивает Вас с толку. Для PHP то, что он в Вашем примере выводит через echo, в принципе, ничем не отличается от случайных наборов символов.
В рамках одного запроса сервер может знать только поля одной-единственной формы - той, которая ему была отправлена. Если Вы хотите, что сервер узнал значение из формы - отправьте ему эту форму.

"Сохранить" из Javascript в PHP невозможно. Это как сохранить с холодильника в микроволновку. Все, что PHP может получить, он получает из запроса пользователя. Чтобы что-то сохранить, надо сделать запрос.
Вопрос лишь в том, зачем Вам делать лишний запрос, если у Вас и так форма на странице?

Правильно делать вот так:
Цитата
<form method="post">
    <input type="radio" name="rbutton" value="A">
    <input type="radio" name="rbutton" value="B">
    <input type="radio" name="rbutton" value="C">
    <input type="radio" name="rbutton" value="D">
    <input type="radio" name="rbutton" value="E">
    <input type="submit" value="Отправить">
</form>


Если не хотите делать кнопки, то отправить можно и через javascript, например:
Код

<form method="post" id="form1">
    <input type="radio" name="rbutton" value="A" onclick="document.getElementById('form1').submit()">
    <input type="radio" name="rbutton" value="B" onclick="document.getElementById('form1').submit()">
    <!-- ... ... -->
</form>


Это сообщение отредактировал(а) Arantir - 13.6.2013, 21:22


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
namra
Дата 13.6.2013, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Код

$temid= $_GET['id']; //получаем id  темы
    // достаем запросом какому id соответствует данная тема
   $qr_result = mysql_query("select testtem from test_tem where id='".$temid."'")
     or die(mysql_error());
   $data = mysql_fetch_array($qr_result);
   $tem = $data['testtem']; // сохраняем тему в переменной

   // выборка всех вопросов соответствующих теме из банка вопросов
    $data_result = mysql_query("select * from test_qbank where tem='".$tem."'")
     or die(mysql_error());
     echo '<br/>';
     
    //вывод кол-ва кнопок    
     echo '<form method="post">';
     $num=1;
     while($voprid=mysql_fetch_array($data_result)){          
       echo '<button type="submit" name="btn" class="vop" value="'.$voprid['id'].'">'.$num++.'</button>';
     }
     echo '</form>';



после  кода приведенного выше на страничке выводятся кнопки 1, 2 , 3 , 4  и т.д.

Далее при нажатии на одну из этих кнопок происходит вывод вопроса  прилагаю картинку результата картинка, вот после этого при нажатии на rbutton значение нужно сохранить в переменную, так как переход от вопроса к вопросу у меня происходит по нажатию кнопок 1 2 3 и т.д. я не могу реализовать обработку radiobutton по средствам кнопки
Код

// если нажата кнопка
       if (isset($_POST['btn'])){
       $vop_result = mysql_query("select * from test_qbank where id='".$_POST['btn']."'")
        or die(mysql_error());
        $vopdata = mysql_fetch_array($vop_result);
        echo '<br/>';
        echo $vopdata['vopr'];
 echo '<p class="variant">A) <input type="Radio" name="rbutton" value="A"></p> 
                <p class="variant">   B) <input type="Radio" name="rbutton" value="B"> </p> 
                <p class="variant">  C) <input type="Radio" name="rbutton" value="C"> </p>  
                <p class="variant">D) <input type="Radio" name="rbutton" value="D"></p>   
                <p class="variant">E) <input type="Radio" name="rbutton" value="E"></p>';
       }



Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  12.jpg 27,20 Kb
PM MAIL   Вверх
Arantir
Дата 13.6.2013, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Для начала бы стоило поместить radibutton-ы и кнопки в одну форму, чтобы все отправлялось на сервер, а не только кнопка.

Код
<form method="post">
    
    <!-- ... -->

    <button type="submit" name="question" value="1">1</button>
    <button type="submit" name="question" value="2">2</button>
    <button type="submit" name="question" value="3">3</button>

    
    <!-- ... -->
    
    <input type="radio" name="answer" value="A">
    <input type="radio" name="answer" value="B">
    <input type="radio" name="answer" value="C">

    <!-- ... -->

</form>


В итоге, при отправке формы вы получите следующее:
Код

$_POST['answer']; // вариант ответа
$_POST['question']; // нажатая кнопка

Можно еще и номер вопроса в hidden добавить, если Вы его отдельно нигде не сохраняете (например, в сессии).


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
namra
Дата 13.6.2013, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Arantir, если  я помещу radiobutton в одну форму с кнопками, то у меня будет очень много radiobutton в коде же видно что кнопки я вывожу циклом для примера показываю то что вы мне предложили

Это сообщение отредактировал(а) namra - 13.6.2013, 22:34

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  1345.jpg 35,03 Kb
PM MAIL   Вверх
Arantir
Дата 13.6.2013, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(namra @  13.6.2013,  21:33 Найти цитируемый пост)
показываю то что вы мне предложили

Я не предлагал выводить ненужных вариантов. Я предложил поместить варианты текущего вопроса и кнопки в одну форму.

Не понимаю, что мешает Вам сделать так, как на Вашей первой картинке, но только в одной форме?
Если Вам надо получить вариант ответа - просто отправьте его вместе с формой, вот и все.

Это сообщение отредактировал(а) Arantir - 13.6.2013, 22:42


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
namra
Дата 13.6.2013, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Arantir, 
Код

//вывод кол-ва кнопок    
     echo '<form method="post">';
     $num=1;
     while($voprid=mysql_fetch_array($data_result)){          
       echo '<button type="submit" name="btn" class="vop" value="'.$voprid['id'].'">'.$num++.'</button>';
// если я здесь добавлю как вы пишите radiobutton  в одну форму то в цикле мне выведет кучу радиобатонов
     echo '<input type="radio" name="answer" value="A">';
    echo '<input type="radio" name="answer" value="B">';
    echo '<input type="radio" name="answer" value="C">';
     }
     echo '</form>';

результат прилагается смотрите картинку

можно ли radiobutton обработать как то в другой форме без нажатия кнопки

Это сообщение отредактировал(а) namra - 13.6.2013, 22:49

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  1345.jpg 35,03 Kb
PM MAIL   Вверх
Arantir
Дата 13.6.2013, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Уловить ход Ваших мыслей просто-таки невозможно оО

Я имел ввиду вот это:
Цитата

<?php
    $temid= $_GET['id']; //получаем id  темы
    // достаем запросом какому id соответствует данная тема
    $qr_result = mysql_query("select testtem from test_tem where id='".$temid."'")
    or die(mysql_error());
    $data = mysql_fetch_array($qr_result);
    $tem = $data['testtem']; // сохраняем тему в переменной
    // выборка всех вопросов соответствующих теме из банка вопросов
    $data_result = mysql_query("select * from test_qbank where tem='".$tem."'")
    or die(mysql_error());
    echo '<br/>';

    //вывод кол-ва кнопок    
    echo '<form method="post">';
    $num=1;
    
    while($voprid=mysql_fetch_array($data_result)) {          
  echo '<button type="submit" name="btn" class="vop" value="'.$voprid['id'].'">'.$num++.'</button>';
    }
    // echo '</form>'; // удалить тут

    // если нажата кнопка
    if (isset($_POST['btn'])) {
  $vop_result = mysql_query("select * from test_qbank where id='".$_POST['btn']."'") or die(mysql_error());
  $vopdata = mysql_fetch_array($vop_result);
  echo '<br/>';
  echo $vopdata['vopr'];

  // echo '<form method="post">'; // и тут
  echo '<p class="variant">A) <input type="Radio" name="rbutton" value="A"></p> 
  <p class="variant">   B) <input type="Radio" name="rbutton" value="B"> </p> 
  <p class="variant">  C) <input type="Radio" name="rbutton" value="C"> </p>  
  <p class="variant">D) <input type="Radio" name="rbutton" value="D"></p>   
  <p class="variant">E) <input type="Radio" name="rbutton" value="E"></p>';
  echo '</form>'; // теперь кнопки и радио в одной форме!
    }

    if (isset($_POST['rbutton'])){
  echo $_POST['rbutton'];
    }
    else
    {
  echo 'Error';
    }



--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.