在codeigneter中按类型输入框显示数据库中的数据

display data from database by type input box in codeigneter

本文关键字:显示 数据库 数据 输入 codeigneter 类型      更新时间:2024-04-26

我有一些代码,这个代码正在运行,我可以在这里的代码中使用它这是我的数据库

====================
= id = type = name =
====================
= 1  = 3   = adam  = 
= 2  = 2   = julia = 
====================

我的数据库,名称是客户这是我的控制器

{   $data['customer'] = $this->usermodel->get_all_customer();
    $this->template->set('title','Tambah User Baru | MyWebApplication.com');
    $this->template->load('template','indoprisma/pemesanan',$data);
       }

和我的型号

function get_all_customer()
{
$this->db->from('customer');
return $this->db->get();
}

这是我的观点

<?php 
$jsArray = "var prdName = new Array();'n";
echo '<select name="id_cus" onchange="changeValue(this.value)">';
echo '<option>-------</option>';
 foreach($customer->result() as $row)
               {
                  $array_customer[$row->id] = $row->id;
    echo "<option value = ".$row->id.">".$row->id."</option>";
    $jsArray .= "prdName['" . $row->id . "'] = {name :'" . addslashes($row->name) . "' ,type :'" . addslashes($row->type) . "'};'n";
}
echo '</select>';
?>
<script type="text/javascript">
<?php echo $jsArray; ?>
function changeValue(id){
document.getElementById('name').value = prdName[id].name;
document.getElementById('type').value = prdName[id].type;
};
</script>
    <input name="name" type="text" id="name" size="20" readonly="readonly" />
      <input name="type" type="text" id="type" size="20" readonly="readonly" /> 

我想把这个组合框改成一个输入框,请帮我

我看到了这里的问题,你试图通过PHP创建JavaScript,然后将其嵌入到脚本中,最重要的是,创建你并不真正需要的对象。。这里有很多问题。您永远不应该尝试通过PHP创建JavaScript。这就是我要做的修复它:

  1. 您的模型应该返回一个result()。所以你需要这样改变:

    function get_all_customer() {
      $this->db->from('customer');
      $q = $this->db->get();
      return $q->result(); ///change
    }
    
  2. 您的视图应该是更多的HTML,并且尽可能少地使用PHP。此外,使用PHP的函数,在这种情况下,json_encode()将派上用场。像这样重做:

    <select name="id_cus" onchange="changeValue(this.value)">
      <option>-------</option>
      <?php foreach ($customer as $row) { ?>
        <option value='<?= json_encode($row) ?>'><?= $row->id ?></option>
      <?php } ?>
    </select>
    <input name="name" type="text" id="name" size="20" readonly="readonly" />
    <input name="type" type="text" id="type" size="20" readonly="readonly" />
    
  3. 最后,你的Javascript是这样的:

    <script>
    function changeValue(value) {
      var obj = JSON.parse(value);
      document.getElementById('name').value = obj.name;
      document.getElementById('type').value = obj.type;
    }
    </script>
    

让我知道这是否适合你。

我希望我的方法能帮助你,下面是我如何解决与你相同的问题:

  1. 对于控制器,您的是正确的
  2. 对于模型,我认为应该是这样

function get_all_customer()
    {
    $hsl = $this->db->query("Select * FROM customer")->result();
    return $hsl
    }

  1. 对于编码视图,我是这样想的

 <select name="id_cus" onchange="changeValue(this.value)">
    <option value="0">-------</option>
    <?php 
    $jsArray = "var prdName = new Array();'n";
     foreach($customer as $row)
      {
        echo "<option value = ".$row->id.">".$row->id."</option>";
        $jsArray .= "prdName['" . $row->id . "'] = {namee :'" . addslashes($row->name) . "' ,typee :'" . addslashes($row->type) . "'};'n";
    }
    ?>
    </select>
        <input name="name" type="text" id="name" size="20" readonly="readonly" />
         <input name="type" type="text" id="type" size="20" readonly="readonly" /> 
    <script type="text/javascript">
    <?php echo $jsArray; ?>
    function changeValue(id){
    document.getElementById('name').value = prdName[id].namee;
    document.getElementById('type').value = prdName[id].typee;
    };
    </script>

希望我的意见能帮助您进行编码:)

Selamat pagi。

顺便问一下,为什么需要将其转换为输入?

那个组合框正在检索多个数据记录吗?

如果是,则不得将其更改为输入。

如果你想要,试试这个:

$jsArray = "var prdName = new Array();'n";
$customer->result() as $row;
$array_customer[$row->id] = $row->id;
echo "<input type='text' name='id_cus' onchange='changeValue(this.value)' value = " . $row->id . ">";
$jsArray .= "prdName['" . $row->id . "'] = {name :'" . addslashes($row->name) . "' ,type :'" . addslashes($row->type) . "'};'n";