PHP $ _GET选择标记
问题描述:
当$ _GET从表单中选择标记什么是返回值。根据我在做什么,我认为它会返回一个整数(1 - 选项),但我想咨询一些更加了解这个主题的人。有没有办法让选择的字符串被选中?
答
如果字段元素是一个select元素,然后在选项,其selectedness是真实的,没有被禁用的选择元素的列表中的每个选项元素,追加到表格中的条目以name作为名称的数据集,作为值的option元素的值,以及作为类型的type。
这是选择的选项元素的值。索引将永远不会被发送,除非它们碰巧与该值相同。
答
它返回所选选项的值。
<select name="someFilter">
<option value="food">Food</option>
<option value="drink">Drink</option>
</select>
所以,在这种情况下$_GET['someFilter']
将返回food
或drink
。
答
如果没有选择任何值作为选择值,表单将发送选定的选项值或第一个选项。
您可以选择以下实验,并提交按钮,看看效果:
var form = document.forms['myForm'],
select = form.querySelector('select'),
button = form.querySelector('input[type=submit]');
select.addEventListener('change', function() {
console.log('Selected value is ' + this.value)
});
button.addEventListener('click', function(e) {
e.preventDefault();
var data = new FormData(form);
var field = 'selection';
console.log('Form will send ' + data.getAll(field) + ' for ' + field);
var label = select.querySelector('option[value="' + data.getAll(field) + '"]').innerHTML;
data.set(field, label)
console.log('But we can change it to label: ' + data.getAll(field));
});
<form name='myForm'>
<label for='selection'>Select something:</label>
<select name="selection">
<option value='0'>---</option>
<option value='1'>First</option>
<option value='2'>Second</option>
<option value='3'>Third</option>
</select>
<br/><br/>
<input type='submit' value="submit" />
</form>
如果你确保你的选择有一个属性值,你得到的属性 – scrappedcola
的增值代码将真正帮助我们理解你的问题和问题 –
如果一个表单有一个SELECT标记并且它被选中,并且你发布表单,那么$ _GET会给你包含SELECT ELEMENT NAME AS ARRAY KEY和SELECT ELEMENT VALUE作为数组值的数组,例如array('select'=> 'value') –