2015-05-17 19 views
1

Я хочу получить код из html радио. Я хочу, чтобы зарегистрировать функцию dalje2(), что выбрано в форме от cetvrtiDio() и текст эха справа. Я судимый с == и === для сравнения, я судимый с get и post, даже и без пространства в elseif - else if, но ничего не работает ... Что-то дисплей idete desno, пока что-то дисплей Molimo vas da izaberete nešto od ponuđenog! и в некоторых случаи не работают вообще .. Что здесь не так?php получить значение от радио

Благодаря

<?php 
class igra { 
function cetvrtiDio() { 
global $lang; 
$desno = $lang['desno']; 
$lijevo = $lang['lijevo']; 
$ravno = $lang['ravno']; 
$dalje = $lang['dalje']; 
echo $lang['prvi-napad'].'<form> 
    <input type="radio" name="izbor2" value="desno2">'.$desno.'<br /> 
    <input type="radio" name="izbor2" value="lijevo2">'.$lijevo.' <br /> 
    <input type="radio" name="izbor2" value="ravno2">'.$ravno.' <br /> 
    <input type="submit" name="dalje2" value="'.$dalje.'" /> 
    </form> '; 
} 
function dalje2() { 
if(isset($_GET['izbor2'])==desno2) { echo 'idete desno'; } 
elseif(isset($_GET['izbor2'])==lijevo2) { echo 'idete lijevo'; } 
elseif(isset($_GET['izbor2'])==ravno2) { echo 'idete ravno'; } 
else { echo 'Molimo vas da izaberete nešto od ponuđenog!';} 
} 
$igra = new igra; 
if(isset($_GET['dalje2'])) { 
$igra->dalje2(); 
} 
+1

Форма должна быть отправлена ​​в GET, который использует весь ваш код, кроме проверки, следует ли вам запускать функцию, в которой вы решили использовать POST? –

+0

Это '$ _GET' в исходном коде ... Это может быть ошибка во время тестирования. Так или иначе. Не работайте с GET тоже ... Я отредактировал это, но все равно не работаю – Ikerepc

+0

Попробуйте 'var_dump()' -ing '$ _GET' перед проверкой для dalje2 и посмотреть, что там находится. –

ответ

2

Проблема с вашим, если/иначе, если заявления в том, что вы используете Исеть(), чтобы увидеть, если переменная существует, а затем пытаясь взять результат этого по сравнению со строками, которые вы ищете (т.е. «desno2»). Это не работает, и вам не нужна isset() в этой логике. Вы правильно используете isset(), проверяя, была ли форма отправлена.

if($_GET['izbor2']=="desno2") { echo 'idete desno'; } 
elseif($_GET['izbor2']=="lijevo2") { echo 'idete lijevo'; } 
elseif($_GET['izbor2']=="ravno2") { echo 'idete ravno'; } 
else { echo 'Molimo vas da izaberete nešto od ponuđenog!';} 

Примечание: Это работает просто отлично. Однако, как отмечено в комментариях, вы смешиваете между $ _POST и $ _GET. Вам нужно выбрать один, который, вероятно, POST в вашем случае и использовать для всех.

+0

Спасибо, что работа! – Ikerepc

2

Вы используете функцию PHP IsSet и пытается сравнить с переменной строки - это не правильно. Попробуйте это:

if(isset($_GET['izbor2'])&&($_GET['izbor2']==$lang['desno'])) { 
.. 
} elseif (...) {...} 

И, конечно, вы можете использовать функцию переключения: http://php.net/manual/en/control-structures.switch.php

+0

Спасибо, это не совсем то, что я искал, но я уверен, что это поможет мне, когда это понадобится;) – Ikerepc

Смежные вопросы