隐藏输入值取决于使用PHP / JavaScript选择单选按钮

时间:2011-07-18 03:17:09

标签: php jquery forms conditional radio

我正在试图弄清楚如何使以下形式的逻辑工作。基本上,如果检查前两个单选按钮中的任何一个,则使名为categories的隐藏输入具有vegetables值。否则,使命名类别的隐藏输入具有水果值。

我不确定是否应该使用PHP或JavaScript,但如果使用PHP完成,我认为表单必须提交给自己进行预处理,然后收集预处理的信息将被发送到external_form_processor.php。如果你这样做,我需要使用什么PHP代码才能使它工作?

<?php
if($_POST["food"]=="carrots" || $_POST["food"]=="peas") {
    $category = "vegetables";
} else {
    $category = "fruits";
}
?>

<form name="food_form" method="post" action="external_form_processor.php" >

<fieldset>
<input type="radio" id="carrots" name="food" value="carrots" />
<input type="radio" id="peas" name="food" value="peas" />
<input type="radio" id="orange" name="food" value="orange" />
<input type="radio" id="apple" name="food" value="apple" />
<input type="radio" id="cherry" name="food" value="cherry" />
</fieldset>

<input type="hidden" name="categories" value="<?php $category ?>" />

</form>

如果使用jQuery会更容易,如果我在页面的头部使用以下内容,如何将变量称为隐藏输入的值?

$(function(){
    $('input[name=food]').click(function(){
        var selected_id = $('input[name=food]:checked').attr('id');
        if (selected_id == 'carrots' || selected_id == 'peas') {
            var category = "vegetables";
        } else {
            var category = "fruits";
        }
    });
});

对此的任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

我认为jQuery对你来说非常合适,你只需要将类别值传递给输入字段:

$(function(){
    $('input[name=food]').click(function(){
        var selected_id = $('input[name=food]:checked').attr('id');
        if (selected_id == 'carrots' || selected_id == 'peas') {
            var category = "vegetables";
        } else {
            var category = "fruits";
        }
        $('input[name=categories]').val(category);
    });
});

答案 1 :(得分:1)

我会在提交表单时在PHP中设置类别。     

//validate inputs... always
    $food = "";
    if(isset($_GET['food'])){
        $food = preg_replace("/[^a-zA-Z]+/", "", $_GET['food']);
    }
    $category = ($food=="peas"||$food=="carrots")?"vegetables":"fruits";