我有以下代码:
$theinput = new inputSmartSearch($db,
"chooseproduct", "Choose Product", $therecord["product"],
"Choose Product", TRUE, NULL, NULL, TRUE, $required=true);
$theinput->setAttribute("class","important");
if(isset($therecord["product"]) || isset($therecord["cost"])) {
$theinput->setAttribute("value",
$therecord["product"] . ", " . $therecord["cost"]);
}
inputSmartSearch是我正在使用的CMS系统的一种表单字段。
我希望在默认情况下设置表单的值,只要它不为空,以避免使用“,”作为默认值。
var_dump($therecord["product"]);
显示字符串(0)“”,因此它肯定是空的。
为什么“,”仍然被设置为我的表单字段的默认值?
答案 0 :(得分:1)
isset()检查变量是否已设置且不是NULL
,您需要检查它是否为空。使用!empty()替换isset(),如下所示:
if (
!empty($therecord["product"])||
!empty($therecord["cost"])
) {
$parts = array();
if (!empty($therecord["product"])) {
$parts[] = $therecord["product"];
}
if (!empty($therecord["cost"])) {
$parts[] = $therecord["cost"];
}
$theinput->setAttribute("value", implode(', ', $parts));
}
编辑:现在只在需要时放入逗号
答案 1 :(得分:0)
你想:
$myValue = ($therecord["product"]) ? $therecord["product"] . ", " . $therecord["cost"] : '';
$theinput->setAttribute("value",$myValue );
这将检查$ therecord [“product”]是否为空,如果是,则make $ myValue ='';
你的总是打印“,”;因为没有什么可以告诉你的。
您可能还需要以下其中一项:
if(isset($therecord["product"]) || isset($therecord["cost"])) {
$myValue = '';
if(!(empty($therecord["product"])) $myValue .= $therecord["product"].', ';
if(!(empty($therecord["cost"])) $myValue .= $therecord["sot"];
else $myValue = substr($myValue, 0, -2);
$theinput->setAttribute("value", $myValue);
}
<强>更新强>
你有:
if(isset($therecord["product"]) || isset($therecord["cost"])) {
$theinput->setAttribute("value",
$therecord["product"] . ", " . $therecord["cost"]);
}
这告诉我,如果变量$ therecord [“product”]或$ therecord [“cost”] exsits(即使为空)然后将值设置为$ therecord [“product”],$ therecord [“成本“]因此它可能最终得到以下任何输出:
1) myprod, mycost
2) myprod,
3) , mycost
4) ,