当我想测试值是否从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
这是什么原因,我需要做些什么才能解决这个问题?
答案 0 :(得分:2)
删除isset()
以进行变量分配,因为它会检查是否设置了可靠的$_POST['bcaa']
。
$bcaacost = $_POST['bcaa'];
完整代码
<?php
$bcaacost = $_POST['bcaa'];
echo $bcaacost;
?>
Read more关于 isset()
答案 1 :(得分:1)
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;
或者如果你想打印一些默认值,那么 -
INSERT OR IGNORE
答案 2 :(得分:1)
if(isset($_POST['bcaa'])) {
$bcaacost = $_POST['bcaa'] ;
echo $bcaacost ;
}
否则,isset($_POST['bcaa'])
将打印1
或0
答案 3 :(得分:1)
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
输出
答案 4 :(得分:0)
isset的结果为true或false。在你的情况下,结果是真的,它被分配回$ bcaacost,这就是它回显1的原因。
使用以下代码:
<?php
$bcaacost = isset($_POST['bcaa'])?$_POST['bcaa']:"not set";
echo $bcaacost;
?>