|
|
|
Codeignither ขอแนวทาง push ข้อมูลลง session แบบ array หลายมิติ แล้ว แสดงออกมาหน่อยค่ะ |
|
|
|
|
|
|
|
คือว่า ...
1.ต้องการจะ push array แบบหลายมิติลง session แบบ กดปุ่มแล้วเพิ่มข้อมูลลงไปต่อจากอาเรย์เก่า
2. แสดง ข้อมูล session array นั้นออกมา
ตัวอย่าง
Code (PHP)
$newdata[0] = array(
'ProID' => $this->input->post("ID"),
'ProName'=> $this->input->post("Name"),
'ProPrice'=> $this->input->post("Price"),
);
$newdata[1] = array(
'ProID' => $this->input->post("ID"),
'ProName'=> $this->input->post("Name"),
'ProPrice'=> $this->input->post("Price"),
);
$this->session->set_userdata("data",$newdata);
echo $this->session->userdata("data");
Tag : PHP, MySQL, jQuery, CodeIgniter Framework
|
|
|
|
|
|
Date :
2015-08-03 20:15:44 |
By :
Saw-Series |
View :
1817 |
Reply :
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controllers
Code (PHP)
$data=$this->session->userdata("data");
$data[] = array(
'ProID' => $this->input->post("ID"),
'ProName'=> $this->input->post("Name"),
'ProPrice'=> $this->input->post("Price"),
);
$this->session->set_userdata("data",$data);
$this->load->library('parser');
$this->parser->parse('show_session', array('sess'=>$data));
views/show_session.php
Code (PHP)
<table>
<tr><th>ID</th><th>Name</th><th>Price</th></tr>
{sess}
<tr><td>{ID}</td><td>{Name}</td><td>{Price}</td></tr>
{/sess}
</table>
|
|
|
|
|
Date :
2015-08-03 20:41:42 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่แสดงค่ะ ตรง
Code (PHP)
<div id="shoping-cart">
<div class="cart-info">
<div class="shopp" id="{ID}" ><div class="label">{ Name }</div><div class="shopp-price"> $<em>{Price}</em></div><span class="shopp-quantity">1</span><img src="<?= base_url(); ?>/assets/button/remove.png" class="remove" />
<br class="all" /></div>
</div>
<div class="cart-total">
<b>Total Charges: </b> $<span>0</span>
<input type="hidden" name="total-hidden-charges" id="total-hidden-charges" value="0" />
</div>
<button type="submit" id="Submit">CheckOut</button>
</div>
|
|
|
|
|
Date :
2015-08-03 21:37:22 |
By :
Saw-Series |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค้ดทั้งหมดเป็นเยี่ยงนี้
Code (JavaScript)
function SetSession(ID){
$.post("" + baseUrl +"/shop_ProductController/SetSesion",{
ID:ID,
Name:$("#Name_"+ID).text(),
Price:$("#Price_"+ID).text()
},function(data){
$("#shoping-cart").load(location.href + " #shoping-cart");
});
}
Code (PHP)
public function SetSesion(){
$data=$this->session->userdata("data");
$data[] = array(
'ProID' => $this->input->post("ID"),
'ProName'=> $this->input->post("Name"),
'ProPrice'=> $this->input->post("Price"),
);
$this->session->set_userdata("data",$data);
$this->load->library('parser');
$this->parser->parse('Customer_Page', array('sess'=>$data));
}
Code (PHP)
<div id="shoping-cart">
<div class="cart-info">
<?php
?> {sess}
<div class="shopp" id="{ID}" ><div class="label">{ Name }</div><div class="shopp-price"> $<em>{Price}</em></div><span class="shopp-quantity">1</span><img src="<?= base_url(); ?>/assets/button/remove.png" class="remove" /><br class="all" /></div>
{/sess}
<?php
?>
</div>
<div class="cart-total">
<b>Total Charges: </b> $<span>0</span>
<input type="hidden" name="total-hidden-charges" id="total-hidden-charges" value="0" />
</div>
<button type="submit" id="Submit">CheckOut</button>
</div>
|
|
|
|
|
Date :
2015-08-03 21:45:12 |
By :
Saw-Series |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีไหมใครสักคน ....
|
|
|
|
|
Date :
2015-08-03 22:10:42 |
By :
Saw-Series |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
public function SetSesion(){
$data=$this->session->userdata("data");
if( !is_array($data)) $data = array(); // เพิ่มบันทัดนี้
// เริ่มต้น คงยังไม่ได้เซท session data ไว้ ต้องกำหนดค่า$data ให้เป็น array ก่อน
$data[] = array(
Code (PHP)
<div id="shoping-cart">
<div class="cart-info">
{sess}
<div class="shopp" id="{ID}" >
<div class="label">{Name}</div>
<div class="shopp-price"> $<em>{Price}</em></div>
<span class="shopp-quantity">1</span>
<img src="<?= base_url(); ?>/assets/button/remove.png" class="remove" /><br class="all" />
</div>
{/sess}
</div>
{Name} รูปแบบตัวแปรห้ามมีวรรค (smarty template)
แล้วไม่มีแจ้ง error อะไรเลยเหรอครับ
ถ้าไม่มี error อะไรเลยใน index.php ให้เซท
define('ENVIRONMENT', 'development');
เพื่อบอกให้ ci รู้ว่ากำลังเขียนโปรแกรม มันจะแสดง error ให้เห็น
เมื่อเขียนโปรแกรมเสร็จแล้ว ค่อยเปลี่ยนเป็น production จะซ่อน error
ข้องใจ javascript
Code (JavaScript)
function SetSession(ID){
$.post("" + baseUrl +"/shop_ProductController/SetSesion",{
ID:ID,
Name:$("#Name_"+ID).text(), // ทำไมใช้ .text() ทำไมไม่ใช้ .val();
Price:$("#Price_"+ID).text() // บันทัดนี้ด้วย
},function(data){
$("#shoping-cart").load(location.href + " #shoping-cart");
});
}
|
|
|
|
|
Date :
2015-08-03 22:14:11 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่ต้องใช้ .text เพราะ เอาค่ามาจาก span ค่ะ
Code (PHP)
<ul>
<br>
<?php
foreach ($rs as $row){
?>
<li class="li_<?php echo $row['ProID']; ?>" >
<div class="Panel2">
<div class="Panel3">
<span id="Pic_<?php echo $row['ProID']; ?>">
<img src="<?=base_url(); ?>/uploads/<?php echo $row['ProPic']; ?>" onclick="SetSession('<?php echo $row['ProID']; ?>')" class="item" width="150" height="170">
</span>
</div>
<div class="Panel4">
ชื่อสินค้า : <span id="Name_<?php echo $row['ProID']; ?>"><?php echo $row['ProName']; ?></span>
<p>รุ่น : <span id="Model_<?php echo $row['ProID']; ?>"><?php echo $row['ProModel'];?></span>
</p>
<p>ราคา : <span id="Price_<?php echo $row['ProID']; ?>"><?php echo $row['ProPrice'];?></span>$
</p>
<p> จำนวนคงเหลือ : <span id="Quan_<?php echo $row['ProID']; ?>"><?php echo $row['ProQuan']; ?></span>
</p>
<a href="<?=base_url();?>index.php/shop_ProductController/ProductDetail/<?php echo $row['ProID']; ?>" target="iframe_target">รายละเอียด</a>
<input type="submit" id="btnSubmit" width="300" value="Cart" />
</div>
</div>
</li>
<?php
}
// echo $this->pagination->create_links();
?>
</ul>
ส่วน error ดังนี้ค้ะ
|
ประวัติการแก้ไข 2015-08-03 22:37:44
|
|
|
|
Date :
2015-08-03 22:34:48 |
By :
Saw-Series |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก้อว่าอยู่เหมือนกันค่ะ แต่ว่าใน tool มันขึ้นขีดแดง เลยไม่กล้าใช้ อิอิ
แล้วที่สำคัญก็ไม่ได้ผลค่ะ T^T
|
|
|
|
|
Date :
2015-08-03 23:23:57 |
By :
Saw-Series |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถามนิด ได้โหลด library session ไว้หรือยังครับ
$this->load->library('session');
หรือใน /appliation/config/autoload.php
$autoload['libraries'] = array('database', 'session');
|
|
|
|
|
Date :
2015-08-04 06:42:54 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำหมดทุกอย่างแล้วค่ะ
|
|
|
|
|
Date :
2015-08-04 10:59:42 |
By :
Saw-Series |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทดสอบ array ด้วย ci 3.0
application/config/autoload.php
Code (PHP)
$autoload['libraries'] = array('database','session','parser');
application/controllers/home.php
Code (PHP)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
public function index(){
$data=$this->session->userdata("data");
if( !is_array($data)) $data = array();
$data[] = array( 'ProID' => $id=count($data)+1, 'ProName'=> 'test' . $id, 'ProPrice'=> $id * 10 );
$this->session->set_userdata("data", $data);
$this->parser->parse('test', array('sess'=>$data));
}
}
application/veiws/test.php
Code (PHP)
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
<div id="shoping-cart">
<div class="cart-info">
{sess}
<div class="shopp" id="{ProID}" >
<div class="label">{ProName}</div>
<div class="shopp-price"> $<em>{ProPrice}</em></div>
<span class="shopp-quantity">1</span>
</div>
{/sess}
</div>
<button type="button" onClick="location='/index.php/home'">Add</button>
|
ประวัติการแก้ไข 2015-08-04 11:49:12
|
|
|
|
Date :
2015-08-04 11:35:15 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|