在<select>标记</select>内的空变量

时间:2011-07-26 17:48:52

标签: php arrays foreach scope

只是想知道是否有人知道为什么会发生这个错误。

我有以下代码

<?php 
foreach($productArray as $key=>$value)
{
    if ($key == 'cod_prod')
    {
?>
      <td>


                                              }     }     ?&GT;

我没有完成剩下的代码,因为它的工作正常,除了这部分。

在上面的示例中,如果我将var_dump($ codeList)放在第一个位置,它会打印出数组的结果就好了,如果我将var_dump($ codeList)放在第二个位置它会变回空白。如果我把var_dump放在两个位置都会发生同样的事情

要使用 var_dump($ codeList)检查此im,请取出选项和其他所有内容,如果我插入选择标记,数组只会返回EMPTY

有什么想法吗?

更新

$ codeList是在控制器上生成的,在本例中是

    $this->setVar(array(
        'DataAtual' => $Solicitacao->DataAtual,
        'ClienteEmail' => $Solicitacao->clientEmail,
        'ClienteNome' => $Solicitacao->userName,
        'ClienteTelefone' => $Solicitacao->userTelefone,
        'VendedorNome' => $Solicitacao->VendedorNome,
        'VendedorEmail' => $Solicitacao->VendedorEmail,
        'VendedorTelefone' => $Solicitacao->VendedorTelefone,
        'PagamentoForma' => $Solicitacao->PagamentoForma,
        'PagamentoPrazo' => $Solicitacao->PagamentoPrazo,
        'PagamentoFrete' => $Solicitacao->PagamentoFrete,
        'Produtos' => $Solicitacao->ProdutosArr,
        'Observacoes' => $Solicitacao->ObservacoesArr,
        'MensagemEmail' => $Solicitacao->MensagemEmail,
        'PageTitle' => $Solicitacao->PageTitle,
        'Action' => $Solicitacao->Acao,
        'PageType' => $Solicitacao->PageType,
        'vendorInfo' => $Solicitacao->vendorInfo,
        **'codeList' => $Solicitacao->codeList,**
        'moneyFields' => $Solicitacao->moneyFields,
        'coresArr' => $Solicitacao->coresArr
        ));

$ Solicitacao-&gt; codeList是在模型中生成的,这里(只是一个由wordpress制作的简单数组)

 $getCodesListSQL = "SELECT cod_prod FROM wp_products ORDER BY cod_prod ASC;";
        $this->codeList = $wpdb->get_results($getCodesListSQL);

恢复

获取FULL数组

 var_dump($codeList);
    echo '<select>';
    //var_dump($codeList);

EMPTY数组获取转储

 //var_dump($codeList);
    echo '<select>';
    var_dump($codeList);

2 个答案:

答案 0 :(得分:2)

输出不可见,因为它位于SELECT元素中。 SELECT仅接受OPTION元素作为子元素。在生成的HTML上执行查看源并查看值实际存在,只是浏览器不知道如何处理它们。

这取决于浏览器,但是:当您查看生成的HTML时,如果它显示在您可以折叠节点的视图中,那么它通过在显示的元素上调用innerHTML函数来获取HTML。如果内部HTML无效,那么它什么都不显示。

内容已存在,但浏览器选择忽略并在您用于查看生成的HTML的视图中将其删除。

答案 1 :(得分:0)

这会给你想要的结果吗?

 <?php 
        foreach($productArray as $key=>$value)
        {
            if ($key == 'cod_prod')
            {
              echo '<td>';
              echo '<select>';                                            

                 foreach($codeList as $codigo)
                 {
                    //DO STUFF
                 }

              echo '</select>';
              echo '</td>';     
            }
        }
?>