我想使用视图脚本来呈现我的zend表单,因为它似乎是在使用Zend_Elements类时控制表单的布局/设计的最佳方法.
从视图脚本中,我使用了渲染元素$this->element->getElement('elementName').
我遇到了元素名称的问题.这实际上是表单内部子表单内的子表单.
当我使用FormElements装饰器时,元素的完全限定名称是[subForm] [subForm] [element],这很好.我转移到viewScript装饰器,它改为subForm [subForm] [element].
我知道我需要使用PrepareElements装饰器来解决这个问题,但这导致名称改变形式[subForm] [form] [subForm] [subForm] [elements](它在开头的前两个名字加倍).
任何想法我应该如何处理这个?
谢谢.
更新:我试图调试PrepareElements,我真的不明白在做什么.看起来它在第一次迭代中工作正常,但是当在其中一个中间子表单上运行时,它再次添加形式[subform]前缀.
当我没有使用PrepareElements装饰器时,我只是在名称中缺少"form"前缀(即,而不是形式[subForm] [element],我只得到subForm [element]).
可能我可以解决这个问题吗?
我试图更改belongsTo,但只替换了"subForm"前缀.
实际上,缺少的是subForm上的belongsTo方法.
同样,这完全是因为ViewScript装饰器.它适用于FormElements装饰器.
更新2:为了澄清,我不介意这个名称更改,但是当我调用form-> populate时,它会导致我的字段不填充.
编辑:我认为我已经将问题缩小到了这一点:当我在setDefaults中获取我的值时,它们的排序方式如下:
array(
\"formElements1-name\" => value1... \"subFormName\" => array(
\"parentFormName\" => array(
\"subFormName\" => subForm-values-array
)
)
Run Code Online (Sandbox Code Playgroud)
......这里的主要问题是"parentFormName" => "subFormNAme"..它重演的是什么?我已经是主要形式了.我猜这是因为我设置了setElementsBelongTo(formName[subFormName]),但如果我不这样做,那么我会将我的子表单值与表单完全分开,
ie values array = array(\"formName \"=> array(formValues),\"subFormNAme \"=> array(subFormValues)
,虽然我把它贬低了
array(
formName => array(
subFormNAme => values-array
)
)...
Run Code Online (Sandbox Code Playgroud)
是否有可能使这项工作?
出于某种原因,我不能使用alt和箭头键来逐字跳转.它适用于textedit.
有任何想法吗?
我正试图找到一种通用的方法来调出哪个单选按钮已选中.问题是,在我的foreach循环中使用$ _GET时,提交按钮也是循环中的echo.
谁能告诉我如何避免这种情况,以便我只显示单选按钮?我不知道一种方法,因为就我所知,foreach只接受数组
这是我的代码
<form action="" method="get">
<input type="radio" name="one" value="One1" />One1<br/>
<input type="radio" name="one" value="One2" />One2 <br/>
<input type="radio" name="one" value="One3" />One3<br/>
<input type="submit" name="submit"/> <br/>
</form>
if(isset($_GET['submit'])){
foreach( $_GET as $key=>$val){
echo "$val <br/>";
}
}
Run Code Online (Sandbox Code Playgroud) 如何检查号码是否有效以下字符串.
最后2位数可能包含十进制值,也可能不包含.
下面是我已尝试过的代码,preg_match但无法取得任何成功
$newPrice = "2,264.00"; or // $newPrice = "264.00";
if (!preg_match('/^[+-][0-9]+(\,[0-9]+)?%?$/', $newPrice))
{
echo "not valid";
}else{
echo "valid";
}
exit();
Run Code Online (Sandbox Code Playgroud)
根据允许的格式,以上两个价格都是正确的.
if (!$this->_current_order->canInvoice()) {
$this->Msg[] = 'Can not create Invoice';
return false;
}
Run Code Online (Sandbox Code Playgroud)
这总是返回 false。因此,我无法创建发票或运输。