2014-03-09 3 views
0
<div class="span3"> 
    <select name="u_home_country" data-validation-required-message="Enter your home country" class="form-control" required id="user_home_country">        
    <?php foreach ($countryOptionshome as $key => $countryName) { ?> 
     <option value="<?php echo $key ?>"><?php echo $countryName ?></option> 
    <?php } ?> 
    </select> 
</div> 

Как показать текстовое поле ввода, если в массиве есть только одно значение. Я использую CodeIgniterПоказать текстовое поле, если в codeigniter имеется только одно значение.

EDIT:

Я получаю массив значений countryOptionshome от контроллера поэтому не может использовать COUNT

foreach ($jsonhome as $queryhome) { 
       foreach ($queryhome['results']['place'] as $placeshome) { 

        if (!empty($placeshome['country']['content'])) { 
         $aData['countryOptionshome'][] = $placeshome['country']['content']; 
        } 
        if (!empty($placeshome['admin1']['content'])) { 
         $aData['stateOptionshome'][] = $placeshome['admin1']['content']; 
        } 
        if (!empty($placeshome['admin2']['content'])) { 
         $aData['cityOptionshome'][] = $placeshome['admin2']['content']; 
        } 
       } 
      } 


      $this->load->view('header_register'); 
      $this->load->view('body_complete_register', $aData); 
      $this->load->view('footer_register'); 
+0

'если (SizeOf() == 1)'? –

+0

Вы получаете значения от AJAX, что вы имеете в виду? – Kalzem

ответ

1

I попробует что-то вроде (чтобы проверить только одно значение в массиве и создать ввод текстового поля:

<?php 

if(count($countryOptionshome) == 1)  //or sizeof() which is an alias for count 
     echo form_input('inputName', 'inputValue'); 
else { 
     //do other stuff 
} 

?> 

Это связано с более, как должен работать ваш код, но, кажется, вы не всегда устанавливая массив с именем $countryOptionshome если может или не может быть выставиться проверки в представлении с помощью функции isset(), прежде чем пытаться получить к нему доступ с count()

if (isset($countryOptionshome)) { 
    //do your thing with the array 

    if(count($countryOptionshome) == 1)  //or sizeof() which is an alias for count 
     echo form_input('inputName', 'inputValue'); 
    else { 
     //do other stuff 
} 
} 

Если можно отлаживать сделать это, если не комментируют эти строки:

/*$this->load->view('header_register'); 
    $this->load->view('body_complete_register', $aData); 
    $this->load->view('footer_register');*/ 

и после комментария добавить строку ниже и, пожалуйста, сообщение/проверить вывод:

echo var_dump($aData); 

Если потребности более управления для атрибутов входного видят в form_helper документ: http://ellislab.com/codeigniter/user-guide/helpers/form_helper.html

+0

Привет я получаю массив значений из контроллера на кнопку нажать – vini

+0

PHP-ошибка была обнаружена Серьезность: Обратите внимание Сообщение: Undefined переменной: countryOptionshome Имя файла: Вид/body_complete_register.php Порядковый номер : 96 – vini

+0

Что вы подразумеваете под «на кнопку щелчка»? событие onclick с JavaScript? или вы отправляете форму контроллеру, который загружает представление с помощью кода, который вы опубликовали ?. – Allende

0

Попробуйте что-то вроде этого:

<div class="span3"> 
    <?php if(count($countryOptionshome) <= 1) 
     echo '<input type="text" name="something" >'; 
    else { ?> 
    <select name="u_home_country" data-validation-required-message="Enter your home country" class="form-control" required id="user_home_country">        
    <?php 
     foreach ($countryOptionshome as $key => $countryName) { ?> 
      <option value="<?php echo $key ?>"><?php echo $countryName ?></option> 
    <?php } ?> 
    </select> 
    <?php } ?> 
</div> 
+0

Что делать, если я хочу o показать одно значение массива в поле ввода? – vini

+0

Это не работает, так как я получаю значения массива от контроллера – vini

+1

Если вы не предоставите больше информации о контроллере и представлении, мы не сможем вам помочь. – Kalzem

Смежные вопросы