|
|
|
Codeigniter เกี่ยวกับการใช้ ajax นำค่าไปแสดงใน select |
|
|
|
|
|
|
|
ขอถามต่อหน่อยครับถ้าผมเขียน แบบ codeigniter เขียนแบบนี้ถูกไหมครับ
คือ select ตามที่เรา set ไว้มันต้องเป็น ---เลือกประเภทสินค้า--- // กับ ---สินค้า---
ผมต้องแก้ตรงไหนเพิ่มครับ
ปล.ผมไม่ได้ทำในส่วน mysql2json.class.php จะมีผลกระทบอะไรไหมครับ
//ไฟล์ ajax.php
Code (PHP)
// JavaScript Document
$(document).ready(function(){
// ส่วนของจังหวัดเมื่อมีการเปลี่ยนแปลง
$("#prodcut_cate").change(function(){ //id=cate อ้างอิงจาก id ที่กำหนดใน form
//$("#pro").empty();//ล้างข้อมูล id=pro อ้างอิงจาก id ที่กำหนดใน form
$.ajax({
url: "product/selectproduct",//ที่อยู่ของไฟล์เป้าหมาย (รอการแก้ไข)
global: false,
type: "POST",//รูปแบบข้อมูลที่จะส่ง
data: ({ID : $(this).val(),TYPE : "prodcut"}), //ข้อมูลที่ส่ง { ชื่อตัวแปร : ค่าตัวแปร }
dataType: "JSON", //รูปแบบข้อมูลที่ส่งกลับ xml,script,json,jsonp,text
async:false,
success: function(jd) { //แสดงข้อมูลเมื่อทำงานเสร็จ โดยใช้ each ของ jQuery
var opt="<option value=\"0\" selected=\"selected\">---สินค้า---</option>";
$.each(jd, function(key, val){
opt +="<option value='"+ val["product_id"] +"'>"+val["product_name"]+"</option>"
});
$("#prodcut").html( opt );//เพิ่มค่าลงใน Select ของ product
}
});
});
//ส่วนของ function เพื่อเพิ่มข้อมูลประเภทสินค้าข้าไปก่อน
function Add(){
$.ajax({
url: "product/selectproduct",
global: false,
type: "POST",
data: ({TYPE : "prodcut_cate"}),
dataType: "JSON",
async:false,
success: function(jd) {
var opt="<option value=\"0\" selected=\"selected\">---เลือกประเภทสินค้า---</option>";
$.each(jd, function(key, val){
opt +="<option value='"+ val["cate_id"] +"'>"+val["cate_name"]+"</option>"
});
$("#prodcut_cate").html( opt );
}
});
}
Code (PHP)
//ไฟล์ product ใน controller
public function selectproduct(){
$id=$this->input->post("ID");
$type=$this->input->post("TYPE");
if($type=='product'){
$product=$this->db->get('product');
$data['product']=$product->result->array();
}else if($type=='product_cate'){
$cate=$this->db->get('categories');
$data['cate']=$cate->result->array();
}
$this->load->view("seller",$data);
}
//ส่วนของ view
Code (PHP)
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="<?echo jquery_asset('jquery-3.2.1.min.js')?>"></script>
<script type="text/javascript" src="<?echo jquery_asset('ajax.js')?>"></script>
</head>
<body onload="Add();">
<?php
echo "ชื่อลูกค้า : <select name='cus_name'>";
foreach($customer as $cus){
echo "<option value=",$cus['cus_id'],">",$cus['cus_name'],"</option>";
}
echo "</select>";
echo "<p>สถานะ : ",$cus['cus_type']," ".anchor("test","เพิ่มข้อมูลลูกค้า")."</p><hr>";
echo "ขายใหม่ <select name='prodcut_cate' id='prodcut_cate'>";
foreach($categories as $cate){
echo "<option value=",$cate['cate_id'],">",$cate['cate_name'],"</option>";
}
echo "</select>   ";
echo "<select name='prodcut' id='prodcut'>";
foreach($product as $pro){
echo "<option value=",$pro['product_id'],">",$pro['product_name'],"</option>";
}
echo "<select>   ";
//echo "<input type='text' name='sellproduct' placeholder='เลือกสินค้า'>";*/
?>
</body>
</html>
Tag : PHP
|
|
|
|
|
|
Date :
2017-09-10 01:49:54 |
By :
1462072250555767 |
View :
2379 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไกด์ให้ครับ เอาไปปรับดู ไม่ได้ลองนะ ไม่รู้ว่าตรงหรือป่าว
Code (PHP)
ติดตรงไหนครับ
<select name='prodcut_cate' id='prodcut_cate' onChange='getprodcut(this.value);'>
<option>---เลือกประเภทสินค้า---</option>
</select>
<select name='prodcut' id='prodcut'>
</select>
function getprodcut(pro_id) {
if (pro_id!= "0") {
loadData('product', pro_id);
$("#product").html("<option value='0'> ---สินค้า--- </option>");
} else {
$("#product").html("<option value='0'> - </option>");
}
}
function loadData(loadType, loadId) {
$.ajax({
type: "POST",
url: "<?php echo site_url('product/selectproduct'); ?>",
data: dataString,
cache: false,
success: function (result) {
$("#product").html("<option value='0'> ---สินค้า--- </option>");
$("#product").append(result);
}
});
}
selectproduct // controller
public function loadData() {
if ($_POST['loadType'] && $_POST['loadId']) {
$loadType = $_POST['loadType'];
$loadId = $_POST['loadId'];
if ($loadType == "product") {
$sql = "SELECT * FROM product";
}
$listdist = $this->db->query($sql)->result_array();
$HTML = "";
if ($this->db->query($sql)->num_rows() > 0) {
foreach ($listdist as $list) {
$HTML.="<option value='" . $list['id'] . "'>" . $list['name'] . "</option>";
}
}
echo $HTML;
}
}
|
|
|
|
|
Date :
2017-09-11 10:33:12 |
By :
Pong Thep |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|