我正在使用JavaScript和HTML进行更新。我想把这些值放在一个下拉列表中。但我无法将所有其他数据循环到下拉列表中。我想用所有的值在其中创建一个HTML下拉菜单,以便我可以从下拉菜单中选择其他选项。我从数据库中获取以前的值。如何在选项中获得其余类别?从数据库中获取数据并将其放入选择列表
控制器
public function productlist($product_id)
{
$this->load->model('Productmodel');
$response=array();
$response = $this->Productmodel->getproductlistbyid($product_id);
echo json_encode($response);
}
型号
public function getproductlistbyid($product_id)
{
$returnarray = array();
$sql = "select id, product_name, image, b.name as bname, c.name as cname, a.category_id as acategory_id, a.subcat_id as asubcat_id, description, qty, color, orginal_price, offer_price from tbl_product as a inner JOIN category as b on a.category_id = b.category_id inner JOIN category as c on a.category_id = c.fk_parent_id where id = ?";
$query = $this->db->query($sql, array($product_id));
if($query->num_rows())
{
$rows = $query->result();
foreach($rows as $temp)
{
$returnarray[0] = $temp->id;
$returnarray[1] = $temp->product_name;
$returnarray[2] = $temp->image;
$returnarray[3] = $temp->bname;
$returnarray[4] = $temp->cname;
$returnarray[5] = $temp->description;
$returnarray[6] = $temp->qty;
$returnarray[7] = $temp->color;
$returnarray[8] = $temp->orginal_price;
$returnarray[9] = $temp->offer_price;
$returnarray[10] = $temp->acategory_id;
$returnarray[11] = $temp->asubcat_id;
}
}
return $returnarray;
}
视图(脚本)
<script>
function editproduct(product_id)
{
var myurl="<?php echo base_url();?>index.php?/Product/productlist/"+product_id;
//alert(myurl);
$.post(myurl).done(function (data)
{
//alert(data);
var obj=jQuery.parseJSON(data);
//alert(obj);
//alert(myhtml);
var myhtml='<form role="form" id="formedit" action="#">'+
'<div class="box-body">'+
' <div class="form-group">'+
' <label for="exampleInputName">Product Name</label>'+
' <input type="hidden" id="upmyid" name="editid" value="'+obj[0]+'">'+
' <input type="text" class="form-control" id="upname" placeholder="Product Name" name="editpname" value="'+obj[1]+'">'+
' </div>'+
'</div>'+
'<div class="box-body">'+
'<div class="form-group">'+
'<label for="exampleInputImage">Image</label>'+
'<input type="file" class="form-control" id="upimage" placeholder="Image" name="editpimage" value="'+obj[2]+'">'+
'</div>'+
'</div>'+
'<div class="box-body">'+
'<div class="form-group">'+
'<label for="exampleInputCategory">Category</label>'+
'<select class="form-control select category" style="width: 100%;" name="option2" id="option2">'+
'<option value="0">Main Menu </option>'+
'<option value="'+obj[9]+'" selected>'+obj[3]+'</option>'+
'</div>'+
'</div>'+
'</form>';
swal({ title: "Edit <small>this</small>!",
text: myhtml,
html: true,
type: "", showCancelButton: true, confirmButtonColor: "#3c8dbc",
confirmButtonText: "Update Now",
closeOnConfirm: false },
function()
{
var id=$('#upmyid').val();
var name=encodeURIComponent($('#upname').val());
var myurl="index.php/Product/updateProduct/"+id+"/"+name;
$.post(myurl).done(function(data)
{
//alert(data);
var obj = jQuery.parseJSON(data);
//alert(obj);
if(obj[0]==100)
{
swal({ title: "Updated Successfully",
text: "Click on ok now!",
type: "success", showCancelButton: false, confirmButtonColor: "#3c8dbc",
confirmButtonText: "OK",
closeOnConfirm: false },
function()
{
location.reload();
});
}
else
{
swal("Sorry!",
"Unable to Update now.",
"warning");
}
});
}
);
});
}
</script>
每当您在PHP中运行您的foreach行时,它会使用最新值覆盖数组的相同部分。每次循环时都需要创建一个新数组(或更好的是一个对象),然后将_that_数组/对象添加到$ mainarray的下一个空索引。实际上,'$ mainarray [] = $ temp;'可能就足够了,它看起来像$ temp已经是一个对象。 – ADyson
然后在javascript中,您需要遍历'obj'并为每个返回的对象打印一个新的'
对不起,但我没有得到你可以请你编辑脚本 – Akhil