我有一个问题。
我在第一页中有这段代码:
<input type="text" name="number" id="number">
<input type="submit" name="button_add" id="button_add" value="add">
<?
$i=0;
while($number>$i) { $i++; ?>
<div align="left">
<input type="text" name="text[<? echo $i; ?>]" id="text[<? echo $i; ?>]" /><? }
?>
如何使用$_POST
vars在下一页中定义fileds数组?
答案 0 :(得分:4)
$_POST
中的条目本身就是一个数组,如果这就是你所要求的:
for ($i = 0; $i < count($_POST['text']); ++$i) {
// do something with this post:
$_POST['text'][$i];
}
或:
foreach ($_POST['text'] as $i => $text) {
// do something with:
$text;
// Note: $text === $_POST['text'][$i]
}
始终关闭您的元素:
<input type="text" name="number" id="number" />
<input type="submit" name="button_add" id="button_add" value="add" />
您也忽略了关闭<div>
包裹text[]
输入。如果不这样做,您的文档格式不正确,虽然浏览器会尝试解析文档,但无法保证他们会按照您想要的方式执行此操作。
输入的默认类型是文本。将type属性设置为“text”并没有什么坏处,但没有必要。
不要依赖short tags;使用完整的<?php
。并非所有主机都会启用它们,并且它们已经被弃用并且很快就会消失(在PHP 5之前已经有一些关于取消它们的讨论)。
您不需要为输入名称显式指定数组索引; empty brackets将导致将值分配给数组的末尾。此外,'['和']'不是valid characters for IDs。
<input type="text" name="text[]" id="text_<?php echo $i; ?>" />
代码中的for
loop is more appropriate而非while
循环。虽然两者都做同样的事情,但它们具有不同的内涵(while循环重复,而某些静态条件在变化的情况下保持; for循环重复序列)。
for ($i=0; $i < $number; ++$i) {
总之,我们有:
<input name="number" id="number" />
<input type="submit" name="button_add" id="button_add" value="add" />
<?php for ($i=0; $i < $number; ++$i): ?>
<div align="left">
<input name="text[]" id="text_<?php echo $i; ?>" />
</div>
<?php endfor; ?>
答案 1 :(得分:3)
尝试:
foreach( $_POST['text'] as $key => $value){
echo "Value for texbox # ".$key." is:". $value;
// or whatever code you want
}
在表单提交的页面中。
答案 2 :(得分:-2)
我正在使用上网本,写代码更不用说了,更不用说了。
使用循环和post var和isset函数。