ปัญหาการส่งค่า เป็น Json ไม่สามารถส่งค่าไปอีกหน้าที่กำหนดได้
คือใช้ console.log(JSON.stringify(rows)) ดูแล้วมีdata ทุกอย่างที่ เลือกมา แต่ว่า ไม่สามารถ ส่งค่าไปได้ เพราะ
Code
error: function ()
{
alert("Fail");
}
มันเข้า ฟังชันนี้ตลอด
Code (JavaScript)
function btnSendData() {
var MultiOjb = [];
var rows = [];
$('#tbShow tbody tr ').each(function () {
rows.push({
QT_NO: $(this).find('td:eq(0)').text(),
PRO_ID: $(this).find('td:eq(1)').text(),
PRO_TYPE_NAME: $(this).find('td:eq(2)').text(),
BRAND_NAME: $(this).find('td:eq(3)').text(),
MODEL_NAME: $(this).find('td:eq(4)').text(),
COLOR_NAME: $(this).find('td:eq(5)').text(),
amount: $(this).find('td:eq(6) input').val(),
price: $(this).find('td:eq(7) input').val(),
});
});
// MultiOjb.push({
// // OfferModel: modelOffer,
// OfferDetail: rows
// })
console.log(JSON.stringify(rows));
// alert(JSON.stringify(rows));
//var stringJson = JSON.stringify(rows);
var Data = JSON.stringify(rows);
$('#tbShow tbody').empty();
event.preventDefault();
$.ajax({
type: "POST",
url: "insertQuote.php",
dataType: "json",
data: {tmp : Data},
success: function ()
{
alert("OK");
},
error: function ()
{
alert("Fail");
}
});
$("#sendData").hide();
}
Tag : PHP, JavaScript, Ajax, jQuery
Date :
2014-12-02 20:11:06
By :
top113457
View :
2669
Reply :
13
ไม่ต้องเข้า jsonครับ เราจะส่งไป
Code (JavaScript)
//var Data = JSON.stringify(rows); ไม่ต้องใช้ครับ
$('#tbShow tbody').empty();
event.preventDefault();
$.ajax({
type: "POST",
url: "insertQuote.php",
//dataType: "json",
//data: {tmp : Data}, ไม่ต้องใช้
data: {tmp : rows},
insertQuote.php ทดสอบ
Code (PHP)
<?php
print_r($_POST['tmp'];
// ถ้าจะเก็บลงดาต้าเบส เป็น json ค่อยมา encode ใน PHP ครับ
?>
Date :
2014-12-02 20:18:17
By :
Chaidhanan
อ่อครับ ตอนนี้ เข้า success: function แต่มันไม่ได้เข้าหน้า ที่ url ไปอะคับ คือ ผมยังมีความจำเป็นไหมคับที่จะต้องใช้ ปุ่ม inputเป็น type="submit"
ประวัติการแก้ไข 2014-12-03 00:00:52
Date :
2014-12-03 00:00:25
By :
top113457
ไม่จำเป็นครับ แก้เป็น type button ควบคุมง่ายด้วยครับ
Date :
2014-12-03 08:37:14
By :
Chaidhanan
ตอนนี้ข้อมูลไม่ลงเบสอะครับ รบกวนทีครับ
Code (JavaScript)
function btnSendData() {
var MultiOjb = [];
var qtid=[]; var Qobj = { QT_ID: ""}; Qobj.QT_ID = $("#quoteid").val();
qtid.push(Qobj);
var date = []; var Dobj = {DATE: ""}; Dobj.DATE = $("#date").val();
date.push(Dobj);
var rows = [];
$('#tbShow tbody tr ').each(function () {
rows.push({
QT_NO: $(this).find('td:eq(0)').text(),
PRO_ID: $(this).find('td:eq(1)').text(),
PRO_TYPE_NAME: $(this).find('td:eq(2)').text(),
BRAND_NAME: $(this).find('td:eq(3)').text(),
MODEL_NAME: $(this).find('td:eq(4)').text(),
COLOR_NAME: $(this).find('td:eq(5)').text(),
amount: $(this).find('td:eq(6) input').val(),
price: $(this).find('td:eq(7) input').val(),
});
});
MultiOjb.push({
// OfferModel: modelOffer,
// OfferDetail: rows
productselect: rows,
qtID: qtid,
date: date
})
console.log(JSON.stringify(MultiOjb));
$.ajax({
type: "POST",
url: "insertQuote.php",
//dataType: "json",
data: {tmp : JSON.stringify(MultiOjb)},
success: function ()
{
alert("OK");
},
error: function ()
{
alert("Fail");
}
});
$("#sendData").hide();
}
Code (PHP)
<?php
session_start();
require('Core.php');
$obj = new Core;
if(!isset($_SESSION['EMP_ID']))
{
echo "<script language='javascript'> alert('No Session');window.location='quote.php';</script>";
}
$sql = "SELECT * FROM employee WHERE EMP_ID = '".$_SESSION['EMP_ID']."' ";
$obj->query($sql);
$result = $obj->fetch_array();
$strRecive = stripslashes($_POST['tmp']);
$arrData = json_decode($strRecive,true);
$sqlquote = "INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES ('".$arrData["QT_ID"]."','".$arrData["DATE"]."'
,'".$arrData["QT_ID"]."','".$result."','รอการอนุมัติ') ";
$obj->query($sqlquote);
$obj->fetch_array();
$sqlquoteDetail = "INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ('".$arrData["QT_ID"]."','".$arrData["QT_NO"]."','".$arrData["PRO_ID"]."'
,'".$arrData["amount"]."') ";
$obj->query($sqlquoteDetail);
$obj->fetch_array();
?>
ประวัติการแก้ไข 2014-12-03 22:40:01
Date :
2014-12-03 19:03:03
By :
top113457
จะตอบดีไหมเนี่ย ผมตอบไปคุณก็ไม่ทำตาม
ผมสอนการส่งด้วย ajax โดยไม่ต้องส่งไปในรูป ่json คุณก็ไม่ทำไม่นำไปทดสอบ
encode ส่งไป พอถึงตัวรับก็ต้อง decode
ส่งไปแล้วก็ต้อง แปลงกลับมาเพื่อใช้งาน จะแปลงทำไม
จะเก็บลง ดาต้าเบสรึก็เปล่า
ผมสอนวิธีที่เร็วกว่าแล้วนะครับ ไม่รู้สอนต่อไปจะได้ประโยชน์หรือเปล่า
$arrData["QT_ID"] มันมีอยู่ไหมครับ ตรวจสอบขื่อฟีลด์ให้ดีครับ
ก่อนทำงาน ลอง print_r( $_REQUEST );มาดูก่อนครับ ว่าตัวแปร มันถูกเซทไว้อย่างไร
ประวัติการแก้ไข 2014-12-04 06:38:47
Date :
2014-12-04 06:35:14
By :
Chaidhanan
โต๊ดตัวรับเอาแค่นี้ก่อนครับ
Code (PHP)
<?php
print_r( $_REQUEST );
?>
แล้วก๊อปเป้น text มาครับผมจะอธิบาย ว่าควรจะเรียกตัวแปร แบบไหนถึงจะได้ข้อมูลตรงตามต้องการ
Date :
2014-12-04 08:11:05
By :
Chaidhanan
Date :
2014-12-04 19:48:45
By :
top113457
จากคห 7
แล้วก๊อปเป้น text มาครับผมจะอธิบาย
ผมว่าต้องปรับระบบสื่อสารของ จขกท หน่อยแล้วนะครับ
จากรูปที่คุณให้มา
มีตัวแปรอยู่ 3 ตัว
productselect เป็น String_json
qtID = 'QT100012';
date = '14-12-04';
ตััวแปร productselect จะใช้งาน ต้อง ถอด json ออกก่อน
Code (PHP)
<?php
extract($_REQUEST); // จะแยกตัวแปรใน array ออกมาในรุปตัวแปรปกติ $productselect, $qtID, $date;
echo $productselect, "<br>", $qtID, "<br>", $date, "<br>";
$d = json_decode($productselect, true); // แปลง json string เป็น array/object
print_r($d); // Test variable
// ข้างล่างนำตัวแปรไปใช้
echo 'QT_NO = ',$d['QT_NO'], "<br>PRO_ID =", $d['PRO_ID'], "<br>อื่นๆๆ"
// หรือ จะทำการ extract อีกครั้งก็ได้ แต่ ควรรู้จักตัวแปร ที่ใช้งาน ว่าจะมีการซ้ำกันหรือไม่
?>
ประวัติการแก้ไข 2014-12-05 07:40:26
Date :
2014-12-05 06:28:26
By :
Chaidhanan
Notice:
extract( $_REQUEST | $_GET | $_POST) ไม่ควรใช้นะครับ เพราะเหมือนกับ register_globals = on
โดยคุณ phpinfo() ผู้หวังดีเตือนมา ซึ่งผมลืมไป ต้องขอโทษไว้ ณ ที่นี้ด้วย
จาก PHP Manual
Warning
Do not use extract() on untrusted data, like user-input ($_GET, ...). If you do, for example, if you want to run old code that relies on register_globals temporarily, make sure you use one of the non-overwriting extract_type values such as EXTR_SKIP and be aware that you should extract in the same order that's defined in variables_order within the php.ini.
Date :
2014-12-05 15:54:02
By :
Chaidhanan
Load balance : Server 05