我遇到的问题是,我有一个表单:
<form method="POST" action="return.php" >
<div class="form_description">
<h2>Production Scheduler</h2>
<p>Enter the quantity of a product</p>
</div>
<p>ET63 <input type="text" name="1"/></p>
<p>ET61 <input type="text" name="2"/></p>
<p>ET83 <input type="text" name="3"/></p>
<p>ET81 <input type="text" name="4"/></p>
<p>ET85 <input type="text" name="5"/> </p>
<p>ET103 <input type="text" name="6"/> </p>
<p>ET153 <input type="text" name="7"/> </p>
<p>ET6SCORE <input type="text" name="8"/></p>
<input type="submit" name="submit" value="Submit" />
</form>
这很好。一切都如我所愿。name="#"
实际上不是数字,但对于隐私是改变的。
所以问题是,我想测试,以确保我得到的结果和删除额外的信息,但我不能得到我的php运行。这里是返回php:
<body>
<?php
for ($x =0; $x > 0; $x++) {
if ($_POST[$x] >= 1) {
echo $_POST[$x];
}
}
?>
</body>
我试过铸造if ($POST[$x] >= 1)
。我是一个PHP新手(大约一个星期)。
都是。php
我在php服务器上运行
你在循环中犯了一个错误:
for($x =0; $x > 0; $x++) {
if($_POST[$x] >= 1)
{
echo $_POST[$x];
}
}
它将在第一次迭代时停止。你要求继续,而$x > 0
,它的初始值。第一次循环,有if 0 > 0
。所以它停止了。
你应该试试这样做:
$limit = count($_POST);
for ($x = 0; $x < $limit; $x++) {
if ($_POST[$x] >= 1) {
echo $_POST[$x];
}
}
顺便说一下,如果您的$_POST
的键不是数字,请尝试使用foreach
:
foreach ($_POST as $key => $value) {
if ($value != $whatIWantToExclude) {
echo $value;
}
}
循环不会结束,因为条件总是会导致循环甚至不会开始,因为它是从true
。false
开始的。可以改成这样:
for($x =0; $x < count($_POST); $x++)
{
if($_POST[$x] >= 1)
{
echo $_POST[$x];
}
}
这使得$_POST
元素的最大数目成为循环的限制。但通常,就像评论中所说的,我们检查$_POST
(或任何变量)的方法是使用var_dump()
该函数显示一个或多个表达式的结构化信息,包括其类型和值。数组和对象递归地探索,值缩进以显示结构。