我正在试图弄清楚如何使以下形式的逻辑工作。基本上,如果检查前两个单选按钮中的任何一个,则使名为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";
}
});
});
对此的任何帮助将不胜感激。谢谢!
答案 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";