我正在尝试处理动态创建的表单,因此长度不一。 while循环似乎工作正常。但是,“if”声明不是;它应该只打印startId $ i和corId $ i 当且仅当填写了表单的特定文本字段时。代码为表单上的每个文本字段打印一行,无论是否是空的还是没有。
$i = 0;
while(!is_null($_POST["startId$i"])){
if(($_POST["startId$i"]) != ""){
echo "startId: " . $_POST["startId$i"] . " ---<br>";
echo "corId: " . $_POST["corId$i"] . " ---<br>";
}
$i++;
}
答案 0 :(得分:3)
$i = 0;
while(isset($_POST["startId$i"])){
if( !empty($_POST["startId$i"]) ){
echo "startId: " . $_POST["startId$i"] . " ---<br>";
echo "corId: " . $_POST["corId$i"] . " ---<br>";
}
$i++;
}
您可以使用字段名称进行管理吗?
如果是,更好的方法是使用name="startId[0]"
和name="corId[0]"
命名输入,依此类推......
然后在PHP中你只需:
$startIds = $_POST['startId'];
$corIds = $_POST['corId'];
foreach ( $startIds as $k => $startId ) {
if ( !empty($startId) ) {
$corId = $corIds[$k];
echo "startId: " . $startId . " ---<br>";
echo "corId: " . $corId . " ---<br>";
}
}
答案 1 :(得分:1)
在这种情况下你应该使用empty()
:
if(!empty($_POST["startId$i"])) {
...
}
答案 2 :(得分:0)
我建议检查$ _POST的真实内容。您可以通过var_dump($_POST);
例如,您可能会发现空字段包含空格。在这种情况下,trim()功能可能有所帮助。
例如:
while(isset($_POST["startId$i"])){
if(trim($_POST["startId$i"])){
echo "startId: " . $_POST["startId$i"] . " ---<br>";
echo "corId: " . $_POST["corId$i"] . " ---<br>";
}
$i++;
}