我写了一个带有表单的html页面; <form action="" method="post">
。如您所见,此表单应发布到与表单相同的网址。我正在使用PHP捕获帖子;
if(isset($_POST['submit'])) {
// do stuff
}
在表单中,具有正确名称属性的提交按钮<button type="submit" name="submit">Send</button>
。如果我记录了post变量,我将从表单中获取所有命名字段,但我没有得到的是这些字段的正确值。
我将添加一个简短缩写的表格:
<form action="" method="post">
<table class="table my-5" id="table">
<?php foreach($parameters as $key => $value): ?>
<tr>
<td>
<h6><?= $key ?></h6>
</td>
<td>
<?php
switch($key){
case 'Origin':
echo '<select class="param" name="Origin">';
foreach($ports as $port){
echo '<option>' . $port . '</option>';
}
echo '</select>';
break;
case 'OriginDepartureDate':
echo '<input class="param" name="OriginDepartureDate" type="text" value="' . $value . '">';
break;
case 'Limit':
echo '<input class="param" data-key="Limit" name="Limit" type="text" placeholder="' . $value . '">';
break;
default:
echo '<span class="param">'. $value . '</span>';
break;
} ?>
</td>
</tr>
<?php endforeach ?>
</table>
<button type="submit" name="submit">Send</button>
</form>
以及用于构建表单的参数:
$parameters['Origin'] = null;
$parameters['OriginDepartureDate'] = null;
$orderbyArr = ['DRS','GRQ','LGG',...];
奇怪的是某些值确实通过了,但其他值没有通过,Origin值也通过了,Limit值也通过了,但是(不是“ DestinationDepartureDate”,而是:) OriginDepartureDate没有。
我已经看了几天代码,但是在逻辑上我找不到任何明显错误的地方。如果一些新鲜的眼睛可以看到我看不到的东西,那就太好了。
答案 0 :(得分:2)
当您注入PHP代码以在HTML中显示某些值时,您必须echo
值本身,因此:
代替:
<input class="param" name="OriginDepartureDate" type="text" value="<?php $value ?>">
您需要:
<input class="param" name="OriginDepartureDate" type="text" value="<?php echo $value ?>">
答案 1 :(得分:0)
我相信您忘记设置选项值。您可以在这里Using $_POST to get select option value from HTML
了解更多信息// options need to have a value
<option value="<?=$orderby?>"><?= $orderby ?></option>
答案 2 :(得分:0)
您可以阅读更多内容。简单地说,测试变量的内容更安全。 我可以建议使用
<input type="submit" name="sent" value="send/OK" />
这给您isset()的预期行为。