【问题标题】:country drop down not being populate with data codeigniter国家下拉菜单中没有填充数据代码点火器
【发布时间】:2014-06-25 10:39:50
【问题描述】:

国家/地区下拉列表中没有填充数据代码点火器,任何机构都可以帮助我,我想要查看国家/地区列表,以便我可以选择国家/地区。当我在视图中添加选择代码以进行下拉时,它会隐藏列表并保存按钮。

我的模特

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"> &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>  

【问题讨论】:

  • 你是如何加载视图文件的?
  • 在 url 中写下这一行:localhost/ajobis/employer/job_post/post_job
  • 我的意思是在控制器中。不错的答案:)
  • 你没有关闭你的选项开始标签,在 ?>" 之后添加 >"。此外,你将国家作为数组返回,但访问它的键,就好像它是一个对象一样。你应该加载它们在控制器中然后传递给视图
  • 您在视图中调用控制器的方式是not correct,这也不是一个好习惯。您必须先填充数据,然后将其传递给您的视图。

标签: codeigniter


【解决方案1】:

在模型中:

替换

return $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

【讨论】:

  • 您好 Guarav 感谢您的帮助。如果我删除这一行 "" 它显示为空的下拉菜单,否则它不显示任何内容。你能帮我吗?我已经完成了模型和视图的所有更改
  • 在 codeginter 中,在控制器中你必须保存这个 $countries = $this->get_Country();
  • 然后把这个参数传给视图 $data['countries'] = $countries
  • 然后用这个参数加载视图 $this->load->view('view.php', $data);
  • 然后从视图中删除这一行“
【解决方案2】:

您的模型是正确的,但您确实需要决定是以array 还是object 访问数据。这将决定您如何访问视图中的数据。

$query-&gt;result_array() 返回一个array

$query-&gt;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-&gt;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>

【讨论】:

  • 感谢布雷特的帮助。正如您详细提到的,我已经进行了所有更改,但列表中没有填充任何数据。请问是什么原因?
  • 在加载视图之前输入以下代码:echo "&lt;pre&gt;&lt;code&gt;"; print_r($data); echo "&lt;/code&gt;&lt;/pre&gt;"; die();
  • 另外,'your_model' 必须是 your 模型的名称。只是检查。
【解决方案3】:

你的控制器没有return任何东西,所以需要修改控制器如下。

控制器:

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

还有您的 VIEW 以数组形式返回结果,您需要使用 $country['name'] 代替 $country-&gt;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>

【讨论】:

  • 感谢 A.P 的帮助,但我无法理解,因为你提到“你需要使用 $country['name'] 代替 $country->name”这一行在我的模型中不存在,所以请您向我解释一下我需要更改的地方。
  • 我的错,我想说查看
  • 下拉列表仍为空,未填充数据。请问还有什么想法吗?
  • 做一件事 print_r(countries);在你看来,告诉你得到结果了吗?
猜你喜欢
  • 2014-03-26
  • 2013-05-24
  • 1970-01-01
  • 2010-12-04
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多