выпадающий список стран не заполняется данными codeigniter

#codeigniter

#codeigniter

Вопрос:

выпадающий список стран не заполняется данными codeigniter, может ли мне помочь какой-либо орган, я хочу, чтобы список стран отображался, чтобы я мог выбрать страну. когда я добавляю код выбора в поле зрения для выпадающего списка, он скрывает список и кнопку сохранения.

моя модель

 public function get_Country() {
        $this->db->select('code, name')->from("country");
        $query = $this->db->get();
        return $query->result_array();
    }
 

мой контроллер

 public function get_Country() {
        $ctry = $this->job_post_model->get_Country();
       // debug($ctry);
    }
 

мой код просмотра

 <div class="row">
    <div class="span8">
        <div class="about-heading">

            <div class="head-menu"> amp;nbsp;</div>
        </div>
        <div class="about-section">
            <div class="about-content rigs-content">
                <form name="jobpost" action=" <?php echo base_url('employer/job_post/post_job'); ?>" method="post">
                    <h2>Your Job Detail :</h2>

                    <div class="invest-form">
                        <ul>
                            <li class="pull-right">
                                <label>Job Category:</label>
                                <input type="text" name="jobcat" value="" placeholder="Enter Job Category*"  />
                            </li>
                            <li class="pull-right">
                                <label>Job Title:</label>
                                <input type="text" name="jobtitle" value="" placeholder="Enter Job Title*"  />
                            </li>
                            <li>
                                <label>Job Type:</label>
                                <input type="text" name="jobtype" value="" placeholder="Enter Job Type*" />
                            </li>
                            <li class="pull-right">
                                <label>Preffered Age:</label>
                                <input type="text" name="age" value="" placeholder="Enter Job Title*"  />
                            </li>
                            <li>
                                <label>Preffered Gender:</label>
                                <input type="text" name="gender" value="" placeholder="Enter Job Type*" />
                            </li>
                            <li>
                                <label>Job Description:</label>
                                <input type="text" name="desc" value="" placeholder="Enter Job Type*" />
                            </li>
                            <li class="pull-right">
                                <label>Location:</label>
                                <input type="text" name="location" value="" placeholder="Enter the Country*"  />
                            </li>
                            <li>
                                <label>Post Code:</label>
                                <input type="text" id="post" rel="popover" data-trigger="hover" name="postcode" placeholder="Enter the City*" />
                            </li>
                            <li class="pull-right">
                                <label>Salary:</label>
                                <input type="text" id="salaries" name="salary" placeholder="Enter the Salary*" />
                            </li>
                            <li>
                                <li>
                                <label>Qualification:</label>
                                <input type="text" id="qualification" rel="popover" data-trigger="hover" name="qualification" placeholder="Enter Benifits*" />
                            </li>
                            <li class="pull-right">
                                <label>Category:</label>
                                <input type="text" id="category" class="span12" required name="category" placeholder="Enter Job Tags" />

                            </li>
                                <label>Benifits:</label>
                                <input type="text" id="benefits" rel="popover" data-trigger="hover" name="benefits" placeholder="Enter Benifits*" />
                            </li>
                            <li class="pull-right">
                                <label>Job Tags:</label>
                                <input type="text" id="jobtags" class="span12" required name="jobtag" placeholder="Enter Job Tags" />

                            </li>
                            <li class="pull-right">
                                <label>Career Level:</label>
                                <input type="text" id="career" class="span12" required name="career" placeholder="Enter Job Tags" />

                            </li>
                          <li>  
                            <label>Country:</label>
                    <?php $countries = get_Country(); ?>
                    <select name="country">
                        <option>Select your country*</option>
                        <?php foreach ($countries as $country) { ?>
                            <option value="<?php echo $country->name ?>" </option>
                        <?php }
                        ?>
                    </select>
                        </li>    
                            <li class="pull-right">                              
                                <table id="question">

                                    <th>Add Killer Questions</th>
                                    <tr>
                                        <td><input type="text" id="questions" name="question[]"/></td>


                                    </tr>
                            </table>
                                <td><input type="button" id="btnAdd" class="button-add" onClick="insertTextBox()" value="Add More"></input></td>
                            </li>
                            <br>
                            <input type="submit" value="Save As Draft" class="button-next" />
                    </div>
                </form>
                <div class="wid-social">
                </div>
            </div>
        </div>
    </div>

  <script>  


    var index = 1;
    function insertTextBox(){
            var text = document.getElementById("question");
                var row=text.insertRow(text.rows.length);
                var cell1=row.insertCell(0);
                var t1=document.createElement("input");
                    t1.id = "question" index;
                    t1.name = "question[]";
                    cell1.appendChild(t1);
                var cell2=row.insertCell(1);
          index  ;  
    }
    </script>  
 

Комментарии:

1. Как вы загружаете файл представления?

2. написав эту строку в url: localhost / ajobis /employer/job_post/post_job

3. Я имею в виду в контроллере. Хороший ответ, хотя 🙂

4. Вы не закрываете свой вариант открытия тега add a> after ?>». Кроме того, вы возвращаете страны в виде массива, но получаете доступ к его ключам, как если бы это был объект. И вы должны загружать их в контроллер, а затем переходить к представлению

5. то, как вы вызываете контроллер в представлении not correct , и это тоже не очень хорошая практика. сначала вы должны заполнить данные, а затем передать их в свое представление.

Ответ №1:

В модели:

Повторная обработка

возвращает $query->result_array();

С

возвращает $query->result();

В поле зрения :

Повторная обработка

  <?php $countries = get_Country(); ?>
 <select name="country">
       <option>Select your country*</option>
           <?php foreach ($countries as $country) { ?>
            <option value="<?php echo $country->name ?>" </option>
      <?php }
       ?>
  </select>
 

С

  <?php $countries = get_Country(); ?>
 <?php echo form_dropdown('country',$countries, 0,'required'); ?>
 

В Codeigniter используйте Codeigniter из выпадающего списка

Комментарии:

1. Привет, Гуарав, спасибо за вашу помощь. если я удалю эту строку «<?php $countries = get_Country(); ?>», она показывает пустой выпадающий список, в противном случае он ничего не показывает. можете ли вы мне помочь, пожалуйста. я внес все изменения в модель и представление

2. В codeginter в контроллере вы должны сохранить это $countries = $this->get_Country();

3. Затем передайте этот параметр в представление $data[‘countries’] = $countries

4. затем загрузите представление с этим параметром $this-> load-> view(‘view.php ‘, $данные);

5. затем удалите эту строку «<?php $countries = get_Country(); ?>» из представления

Ответ №2:

Ваша модель верна, но вам нужно решить, собираетесь ли вы обращаться к данным как array к или object . Это будет определять, как вы получаете доступ к своим данным в представлении.

$query->result_array() возвращает array

$query->result() возвращает object

В вашем контроллере вам нужно использовать вашу модель.

 // Load your model into your controller
$this->load->model('your_model');

// use your_model method to set $data['countries']
$data['countries'] = $this->your_model->get_Country();

// You will access $countries in your view by passing it to your view
$this->load->view('your_view'), $data);
 

На ваш взгляд, если вы выберете $query->result() в своей модели :

 <select name="country">
  <option>Select your country*</option>
<?php foreach ($countries as $country): ?>             
  <option value="<?php echo $country->name ?>"><?php echo $country->name ?></option>
<?php endforeach; ?>
</select>
 

Комментарии:

1. спасибо, Бретт, за вашу помощь. я внес все изменения, как вы подробно упомянули, но данные в списке не заполняются. в чем может быть причина, пожалуйста?

2. Перед загрузкой представления введите следующий код: echo "<pre><code>"; print_r($data); echo "</code></pre>"; die();

3. Кроме того, ‘your_model’ должно быть именем вашей модели. Просто проверяю.

Ответ №3:

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

контроллер :

 public function get_Country() {
   return $ctry = $this->job_post_model->get_Country();
}
 

а также ваш ВИД, возвращающий результат в виде массива, который вам нужно использовать $country['name'] вместо $country->name .

Вид:

  <?php $countries = get_Country(); ?>
       <select name="country">
             <option>Select your country*</option>
             <?php foreach ($countries as $country) { ?>
             <option value="<?php echo $country['code'] ?>"><?php echo $country['name'] ?></option>
              <?php }
              ?>
        </select>
 

Комментарии:

1. спасибо A.P за вашу помощь, но мне жаль, что я не мог понять, как вы упомянули, что «вам нужно использовать $country[‘name’] вместо $country-> name» эта строка не существует в моей модели, поэтому не могли бы вы объяснить мне подробнее, пожалуйста, гдемне пришлось бы измениться.

2. моя ошибка, я хочу сказать, посмотреть

3. выпадающий список по-прежнему пуст, данные не заполняются. пожалуйста, еще какие-нибудь идеи?

4. сделайте одно print_r (страны); на ваш взгляд, и скажите, получаете ли вы результат?