我有一些代码正常工作,我在codeigneter中使用它我的代码 这个我的数据库
====================
= 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" />
我想将组合框更改为输入框,请帮助我
答案 0 :(得分:0)
我在这里看到了问题,您正在尝试通过PHP创建JavaScript,然后将其嵌入到脚本中,最重要的是,创建您并不真正需要的对象......这里有很多问题。你永远不应该尝试通过PHP创建JavaScript。这就是我要解决的问题:
您的模型应返回result()
。所以你需要改变它:
function get_all_customer() {
$this->db->from('customer');
$q = $this->db->get();
return $q->result(); ///change
}
您的视图应该是更多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" />
最后,您的Javascript如下:
<script>
function changeValue(value) {
var obj = JSON.parse(value);
document.getElementById('name').value = obj.name;
document.getElementById('type').value = obj.type;
}
</script>
请告诉我这是否适合您。
答案 1 :(得分:0)
希望我的方法能帮到你,我和你一样的情况是这样解决的:
function get_all_customer()
{
$hsl = $this->db->query("Select * FROM customer")->result();
return $hsl
}
<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>
希望我的意见可以帮助您编码 :)
答案 2 :(得分:-1)
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";