Jump to content
  • 0

проверка значений радиокнопок


apexis
 Share

Question

на странице index.php есть форма с двумя радиокнопками



<form method="post" action="shout.php" >
<input type="text" id="name" class="formfields" placeholder="Имя"/> <input type="radio" name="yesorno" value="1">Положительный <input type="radio" name="yesorno" value="2">Отрицательный<br />
<textarea id="message" cols="85" rows="4" class="formfields" placeholder="Ваш отзыв"></textarea><br />
<input type="submit" id="submit" value="Оставить отзыв" class="sendbtn" />

часть кода обработчика shout.php


function populate_shoutbox() {
global $dbh;
$sql = "select * from shoutbox order by date_time desc limit 20";
echo '<ol class="list">';

if (isset($_POST['yesorno']) == "1") {$made = "plus";}
else {$made == "minus";}

foreach ($dbh->query($sql) as $row) {
echo '<li>';
echo '<div class="choise '.$made.'">';
echo '<span class="name">'.$row['name'].'</span><br />';
echo '<span class="message">'.$row['message'].'</span></div>';
echo '</li>';
}
echo '</ol>';
}
?>

Переменная made должна принимать значение plus или minus, но видно я что-то напутал в этой строке


if (isset($_POST['yesorno']) == "1") {$made = "plus";}
else {$made == "minus";}

Где ошибка?

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

кстати да, rus прав

в идеале код должен выглядеть так


if (
(!empty($_POST['yesorno'])) //$_POST['yesorno'] не пустое
&&($_POST['yesorno'] == "1")) // и равно 1
{$made = "plus";} //тогда присвоить плюс
else //или
{$made = "minus";} //ПРИСВОИТЬ минус

PS почему именно так:

1. когда вы используете isset($a), php на него реагирует примерно так:

да. есть тут такая переменная, всё ОК

а когда вы используете !empty($a) - именно с восклицательным знаком, т.е. НЕ пустая

php будет реагировать немного по-другому:

да есть тут такая переменная $a, но я не могу с ней работать потому-что !empty($a) даёт результат FALSE, т.е. переменная существует но ей не задали никакого значения, т.е. она empty - пустая

Edited by McLotos
Link to comment
Share on other sites

  • 0

Вставил этот код


if (
(!empty($_POST['yesorno'])) //$_POST['yesorno'] не пустое
&&($_POST['yesorno'] == "1")) // и равно 1
{$made = "plus";} //тогда присвоить плюс
else //или
{$made = "minus";} //ПРИСВОИТЬ минус

Проверил с помощью var_dump($_POST['yesorno']); - результат null. http://lidomed.com.ua/test/.

Может javascript на странице с формой мешает?

<script type="text/javascript">
$(function() {
refresh_shoutbox();
setInterval("refresh_shoutbox()", 15000);

$("#submit").click(function() {
var name = $("#name").val();
var message = $("#message").val();
var data = 'name='+ name +'&message='+ message;
if (document.getElementById('name').value == "" || document.getElementById('message').value == "") {document.getElementById('error').style.display = "block";
return false;}
if (document.getElementById('name').value != "" || document.getElementById('message').value != "") {document.getElementById('error').style.display = "none";}

$.ajax({
type: "POST",
url: "shout.php",
data: data,
success: function(html){
$("#shout").slideToggle(500, function(){
$(this).html(html).slideToggle(500);
$("#message").val("");
});
}
});
return false;
});
});

function refresh_shoutbox() {
var data = 'refresh=1';

$.ajax({
type: "POST",
url: "shout.php",
data: data,
success: function(html){
$("#shout").html(html);
}
});
}

</script>

Link to comment
Share on other sites

  • 0

Честно, никогда так не извращался. и вообще считаю это плохим тоном запихивать всё подряд в один файл. такую кашу PHP+JS+CSS+HTML не поймёт ни php программист, ни html-верстальщик, на css-дизайнер, или я не прав?

как вариант, можете сделать по-другому


if (empty($_POST['yesno']))
{die('переменная пустая');}
else
{
switch($_POST['yesno'])
{
case '0':$made='minus';break;
case '1':$made='plus';break;
}
}

Edited by McLotos
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy