当我想测试值是否正确地从HTML表单传递到PHP时,我发现echo语句有问题。这是HTML文本框代码
<div class = form-group>
<label for = 'bcaa'>BCAA 5gms Cost</label>
<input type = 'text' class = 'form-control' name = 'bcaa'>
</div>
下面是获取值并简单打印的PHP代码。
<?php
$bcaacost = isset($_POST['bcaa']) ;
echo $bcaacost;
?>
文本框中给定的值不打印,但只打印"1",添加的回声语句越多,打印的中"1"的数目就越多
像
echo "something";
echo "blah blah";
输出为
11
这是什么原因?我需要做些什么来解决这个问题?
删除变量赋值的isset()
,因为它检查是否设置了可验证的$_POST['bcaa']
。
$bcaacost = $_POST['bcaa'];
完整代码
<?php
$bcaacost = $_POST['bcaa'];
echo $bcaacost;
?>
阅读有关isset()
isset()
根据变量集是否返回true
或false
。
$bcaacost = isset($_POST['bcaa']) ; // return true / 1
echo $bcaacost; // prints 1
应该像
if(isset($_POST['bcaa'])) {
echo $_POST['bcaa'];
}
或者,如果你想打印一些默认值,那么-
$bcaacost = isset($_POST['bcaa']) ? $_POST['bcaa'] : 'Default';
echo $bcaacost;
if(isset($_POST['bcaa'])) {
$bcaacost = $_POST['bcaa'] ;
echo $bcaacost ;
}
否则,isset($_POST['bcaa'])
将打印1
或0
isset()
检查变量是否存在,并返回true
(1)或false
(0)
要查看$_POST['bcaa']
的内容,您需要检查它是否存在,即isset()
,然后使用变量的内容
<?php
$bcaacost = isset($_POST['bcaa']);
if ( $bcaacost ) {
echo $_POST['bcaa'];
}
?>
或者更简单地说
if ( isset($_POST['bcaa']) ) {
echo $_POST['bcaa'];
}
关于你的建议:
echo "something";
echo "blah blah";
将创建不可能的11
。一定是其他原因导致了这种情况,否则您会对创建11
输出的原因感到困惑
isset的结果为true或false。在您的情况下,结果是真的,它被分配回$bcaacost,这就是为什么它返回1。
使用以下代码:
<?php
$bcaacost = isset($_POST['bcaa'])?$_POST['bcaa']:"not set";
echo $bcaacost;
?>