Пустая переменная внутри разметки <select> - PullRequest
0 голосов
/ 26 июля 2011

просто чтобы узнать, есть ли у кого-нибудь идея, почему эта ошибка происходит.

У меня есть следующий код

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


}}?>

Я не закончил остальную часть кода, потому что он работает нормально, за исключением этой части.

В приведенном выше примере, если я помещаю var_dump ($ codeList) в первую позицию, он просто отлично печатает результаты массива, если я помещаю var_dump ($ codeList) во вторую позицию, он возвращаетсяпустой.Если я помещаю оба var_dumps в обе позиции, происходит одно и то же

Чтобы проверить это, используя var_dump ($ codeList) , вынули опции и все остальное, и массив просто вернулся 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-> codeList, здесь (просто простой массив, созданный WordPress)

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

RESUME

массив FULL сбрасывается

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

массив EMPTY сбрасывается

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

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Вывод не виден, потому что он находится в элементе SELECT. SELECT принимает только элементы OPTION как дочерние. Сделайте View Source для сгенерированного HTML и убедитесь, что значения действительно есть, просто браузеры не знают, что с ними делать.

Это зависит от браузера, но: при просмотре сгенерированного HTML, если он отображается в виде, где можно свернуть узлы, он получает HTML, вызывая функцию innerHTML для показанного элемента. Если внутренний HTML-код недействителен, он ничего не показывает.

Содержимое есть, но браузер предпочитает игнорировать и удалять его в представлении, которое вы используете для просмотра сгенерированного HTML.

0 голосов
/ 26 июля 2011

Дает ли это результаты, которые вы хотите?

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

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

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