รับข้อมูลจาก Json มาแล้ว insert ลงเบส ค่าไม่เข้าเบส รบกวนทีครับ
Code (VBScript)
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));
// alert(JSON.stringify(rows));
//var stringJson = JSON.stringify(rows);
//$('#tbShow tbody').empty();
//event.preventDefault();
// 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"]."'
,'".$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();
?>
Tag : PHP, JavaScript, Ajax, jQuery
Date :
2014-12-03 23:06:40
By :
top113457
View :
2046
Reply :
45
เพราะค่าที่ส่งไปมันเป็น JavaScript Array ครับ
var MultiOjb = [];
.
.
.
MultiOjb.push({
// OfferModel: modelOffer,
// OfferDetail: rows
productselect: rows,
qtID: qtid,
date: date
})
พอคุณรับมาด้วย
Code (PHP)
$strRecive = stripslashes($_POST['tmp']);
$arrData = json_decode($strRecive,true);
$arrdata จะเป็น php array
ถ้าคุณจะ INSERT คุณต้อง INSERT สมาชิกใน array
$arrData = json_decode($strRecive,true);
$valuesSql = array(); // ใช้เพื่อสร้าง VALUES
foreach ($arrData as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($row['qtID']), // escape เพื่อกัน SQL Injection
mysql_real_escape_string($row['date']), // ชื่อต้องตรงกับที่กำหนดใน JavaScript ด้วย
mysql_real_escape_string($result),
'รอการอนุมัติ',
);
}
$obj->query(
"INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES "
. implode(',', $valuesSql) // เชื่อม VALUES ด้วย ,
);
ประวัติการแก้ไข 2014-12-03 23:22:00
Date :
2014-12-03 23:20:47
By :
phpinfo()
ลองทำไปแบบไหนเอามาดูสิครับ บอกแค่นี้คุณทำผิดหรือเปล่าผมก็ไม่รู้
Date :
2014-12-03 23:54:37
By :
phpinfo()
เดี๋ยวนะครับ
class Core เนี่ยมันใช้ฐานข้อมูลอะไรครับ mysql หรือเปล่า
Date :
2014-12-03 23:56:18
By :
phpinfo()
ตอบความคิดเห็นที่ : 5 เขียนโดย : phpinfo() เมื่อวันที่ 2014-12-03 23:56:18
รายละเอียดของการตอบ ::
ใช้คับ mysqlครับ
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);
$valuesSql = array();
foreach ($arrData as $row)
{
$valuesSql[] = sprintf("('%s','%s','%s','%s')",mysql_real_escape_string($row['qtID']), mysql_real_escape_string($row['date'])
,mysql_real_escape_string($result),'รอการอนุมัติ',);
}
// $sqlquote = "INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES ('".$arrData["QT_ID"]."','".$arrData["DATE"]."'
// ,'".$result."','รอการอนุมัติ') ";
// $obj->query($sqlquote);
// $obj->fetch_array();
$sql1 = "INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES ". implode(',', $valuesSql);
$obj->query($sql1);
$obj->fetch_array();
$valuesSql2 = array();
foreach ($arrData as $row)
{
$valuesSql2[] = sprintf("('%s','%s','%s','%s')",mysql_real_escape_string($row['qtID']), mysql_real_escape_string($row['QT_NO'])
,mysql_real_escape_string($row['PRO_ID']),mysql_real_escape_string($row['amount']),);
}
$sql2 = "INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql2);
$obj->query($sql2);
$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();
?>
Date :
2014-12-03 23:59:58
By :
top113457
ขออภัยครับ โค้ดผมผิดครับ มี , เกินมาตัวนึง
Code
$arrData = json_decode($strRecive,true);
$valuesSql = array(); // ใช้เพื่อสร้าง VALUES
foreach ($arrData as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($row['qtID']), // escape เพื่อกัน SQL Injection
mysql_real_escape_string($row['date']), // ชื่อต้องตรงกับที่กำหนดใน JavaScript ด้วย
mysql_real_escape_string($result),
'รอการอนุมัติ', // เอาออก
);
}
$obj->query(
"INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES "
. implode(',', $valuesSql) // เชื่อม VALUES ด้วย ,
);
Date :
2014-12-04 00:07:29
By :
phpinfo()
ส่วนลูป 2 ของคุณ ผมคิดว่าไม่น่าจะถูกต้องนะครับ เพราะใน JavaScript คุณส่งมาแค่ MultiOjb แต่ไม่ได้ส่ง rows
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));
// alert(JSON.stringify(rows));
//var stringJson = JSON.stringify(rows);
//$('#tbShow tbody').empty();
//event.preventDefault();
// JSON.stringify(MultiOjb);
$.ajax({
type: "POST",
url: "insertQuote.php",
//dataType: "json",
data: {tmp : JSON.stringify(MultiOjb)}, // คุณส่งแค่ MultiOjb
// ถ้าจะส่ง rows ด้วย ลองเพิ่มเป็น
// data: {tmp : JSON.stringify(MultiOjb), rows: rows},
success: function ()
{
alert("OK");
},
error: function ()
{
alert("Fail");
}
});
$("#sendData").hide();
}
และไปอ่านค่าใน php อีกที
Code (PHP)
$arrData = json_decode($_POST['rows'],true);
$valuesSql2 = array();
foreach ($arrData as $row)
{
$valuesSql2[] = sprintf("('%s','%s','%s','%s')",mysql_real_escape_string($row['qtID']), mysql_real_escape_string($row['QT_NO'])
,mysql_real_escape_string($row['PRO_ID']),mysql_real_escape_string($row['amount']),);
}
$sql2 = "INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql2);
$obj->query($sql2);
$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();
Date :
2014-12-04 00:10:57
By :
phpinfo()
จริงๆ query ไม่จำเป็นต้องใส่ลงตัวแปรนะครับ
Code (PHP)
$sql2 = "INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql2);
$obj->query($sql2); // เพื่ออะไร
// ในเมื่อเราใช้
// $obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql2));
// ก็ได้
ตัวแปรที่ใช้ชั่วคราวก็ไม่ต้องตั้งใหม่ก็ได้
เพื่ออะไร
$valuesSql2 = array();
// ทำไมไม่ใช้ $valuesSql = array(); เพราะมันใช้ชั่วคราว
Date :
2014-12-04 00:13:08
By :
phpinfo()
เอาที่ทำไปแล้วมาให้ดูสิครับ บอกแค่ไม่ได้ แล้วผมจะบอกให้แก้ยังไง ถ้าไม่รู้ว่าคุณทำไปแบบไหน
Date :
2014-12-04 00:24:13
By :
phpinfo()
ตอบความคิดเห็นที่ : 12 เขียนโดย : phpinfo() เมื่อวันที่ 2014-12-04 00:24:13
รายละเอียดของการตอบ ::
คับ
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({
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);
$valuesSql = array();
foreach ($arrData as $row)
{
$valuesSql[] = sprintf("('%s','%s','%s','%s')",mysql_real_escape_string($row['qtID']), mysql_real_escape_string($row['date'])
,mysql_real_escape_string($result),'รอการอนุมัติ');
}
$obj->query("INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES ". implode(',', $valuesSql));
foreach ($arrData as $row)
{
$valuesSql[] = sprintf("('%s','%s','%s','%s')",mysql_real_escape_string($row['qtID']), mysql_real_escape_string($row['QT_NO'])
,mysql_real_escape_string($row['PRO_ID']),mysql_real_escape_string($row['amount']));
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
?>
Date :
2014-12-04 00:27:45
By :
top113457
ผมอุตส่าห์จัดโค้ดให้อ่านง่ายๆ คุณก็ไปทำให้มันอ่านยากเหมือนเดิม
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);
$valuesSql = array();
foreach ($arrData as $row)
{
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($row['qtID']),
mysql_real_escape_string($row['date']),
mysql_real_escape_string($result),
'รอการอนุมัติ'
);
}
$obj->query("INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES ". implode(',', $valuesSql));
// คุณไม่ได้ส่งค่าสำหรับข้อมูลชุดที่สอง มัน INSERT ไม่เข้าก็ไม่แปลก
$valuesSql = array(); // และคุณไม่ได้กำหนดตรงนี้ ดังนั้น $valuesSql ก่อนหน้ามันก็ยังอยู่ ทำให้ query กลายเป็น error
foreach ($arrData as $row)
{
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($row['qtID']),
mysql_real_escape_string($row['QT_NO']), // มันจะมาจากไหนครับ ในเมื่อไม่ได้ส่งมา
mysql_real_escape_string($row['PRO_ID']), // เนี่ย
mysql_real_escape_string($row['amount']) // เนี่ย
);
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
Date :
2014-12-04 00:34:54
By :
phpinfo()
Code (JavaScript)
function btnSendData() {
var MultiOjb = []; // ข้อมูลชุดที่ 1 ที่จะไปอยู่ใน $_POST['tmp']
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 () {
// นี่คือข้อมูลชุดที่สองใช่หรือไม่
// ถ้าใช่มันจะไปอยู่ใน $_POST['rows']
// คุณไม่ได้ส่ง qtID ไปด้วย แต่ใน php มีอ่านค่า qtID
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({
productselect: rows,
qtID: qtid,
date: date
})
console.log(JSON.stringify(MultiOjb));
$.ajax({
type: "POST",
url: "insertQuote.php",
//dataType: "json",
data: {
tmp : JSON.stringify(MultiOjb), // $_POST['tmp']
rows: JSON.stringify(rows) // $_POST['rows']
},
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);
$arrData = json_decode($_POST['tmp'], true);
$valuesSql = array();
foreach ($arrData as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($row['qtID']),
mysql_real_escape_string($row['date']),
mysql_real_escape_string($result),
'รอการอนุมัติ'
);
}
$obj->query("INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES ". implode(',', $valuesSql));
$arrData = json_decode($_POST['rows'], true);
$valuesSql = array();
foreach ($arrData as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($row['qtID']), // อันนี้มันจะมีค่าหรือเปล่าครับ ในเมื่อคุณไม่ได้ส่งมา
mysql_real_escape_string($row['QT_NO']),
mysql_real_escape_string($row['PRO_ID']),
mysql_real_escape_string($row['amount'])
);
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
Date :
2014-12-04 00:41:32
By :
phpinfo()
เด๋วนะครับ
แสดงว่า MultiOjb ยังไงมันจะมีแค่ 1 ตัวใช่มั้ยครับ แล้วคุณใช้เป็น Array ทำไมครับ
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({
productselect: rows,
qtID: qtid,
date: date
})*/
console.log(JSON.stringify(MultiOjb));
$.ajax({
type: "POST",
url: "insertQuote.php",
//dataType: "json",
/*data: {
tmp : JSON.stringify(MultiOjb), // $_POST['tmp']
rows: JSON.stringify(rows) // $_POST['rows']
},*/
data: {
productselect : JSON.stringify(rows), // $_POST['productselect']
qtID: qtid, // $_POST['qtID']
date: date // $_POST['date']
},
success: function () {
alert("OK");
},
error: function () {
alert("Fail");
}
});
$("#sendData").hide();
}
ประวัติการแก้ไข 2014-12-04 00:50:35
Date :
2014-12-04 00:45:31
By :
phpinfo()
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();
$obj->query(
sprintf(
"
INSERT into quote
(QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS)
VALUES
('%s', '%s', '%s', '%s')
",
mysql_real_escape_string($_POST['qtID']),
mysql_real_escape_string($_POST['date']),
mysql_real_escape_string($result),
'รอการอนุมัติ'
)
);
$productselect = json_decode($_POST['productselect'], true);
$valuesSql = array();
foreach ($productselect as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($_POST['qtID']),
mysql_real_escape_string($row['QT_NO']),
mysql_real_escape_string($row['PRO_ID']),
mysql_real_escape_string($row['amount'])
);
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
Date :
2014-12-04 00:49:27
By :
phpinfo()
ตอบความคิดเห็นที่ : 16 เขียนโดย : phpinfo() เมื่อวันที่ 2014-12-04 00:41:32
รายละเอียดของการตอบ ::
ก็ยังไม่ได้อะคับพี่
Code (JavaScript)
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(),
QT_ID: $("#quoteid").val(), //ผมเพิ่ม QT_IDเข้าในrows แล้วนะคับ
});
});
MultiOjb.push({
productselect: rows,
qtID: qtid,
date: date,
})
console.log(JSON.stringify(MultiOjb));
$.ajax({
type: "POST",
url: "insertQuote.php",
//dataType: "json",
// data: {tmp : JSON.stringify(MultiOjb)},
data: {
tmp : JSON.stringify(MultiOjb), // $_POST['tmp']
rows: JSON.stringify(rows) // $_POST['rows']
},
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();
$arrData = json_decode($_POST['tmp'], true);
$valuesSql = array();
foreach ($arrData as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($row['qtID']),
mysql_real_escape_string($row['date']),
mysql_real_escape_string($result),
'รอการอนุมัติ'
);
}
$obj->query("INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES ". implode(',', $valuesSql));
$arrData = json_decode($_POST['rows'], true);
$valuesSql = array();
foreach ($arrData as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($row['QT_ID']),
mysql_real_escape_string($row['QT_NO']),
mysql_real_escape_string($row['PRO_ID']),
mysql_real_escape_string($row['amount'])
);
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
?>
Date :
2014-12-04 00:59:44
By :
top113457
ไม่ได้ก็ไม่แปลกครับ ลองดูโค้ด php ล่าสุดของผมแล้วลองสังเกตดูว่ามันต่างกันตรงไหนครับ
Date :
2014-12-04 01:06:17
By :
phpinfo()
JavaScript ด้วย ผมให้ไปแล้ว สังเกตดูสิครับ
Date :
2014-12-04 01:06:58
By :
phpinfo()
ตอบความคิดเห็นที่ : 21 เขียนโดย : phpinfo() เมื่อวันที่ 2014-12-04 01:06:58
รายละเอียดของการตอบ ::
แก้ตามแล้วนะพี่ยังไม่ได้เลยอะคับ
Code (JavaScript)
function btnSendData() {
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(),
QT_ID: $("#quoteid").val(),
});
});
$.ajax({
type: "POST",
url: "insertQuote.php",
data: {
productselect : JSON.stringify(rows), // $_POST['productselect']
qtID: qtid, // $_POST['qtID']
date: date // $_POST['date']
},
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();
$obj->query(
sprintf(
"
INSERT into quote
(QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS)
VALUES
('%s', '%s', '%s', '%s')
",
mysql_real_escape_string($_POST['qtID']),
mysql_real_escape_string($_POST['date']),
mysql_real_escape_string($result),
'รอการอนุมัติ'
)
);
// $obj->query("INSERT into quote (QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS) VALUES ". implode(',', $valuesSql));
$productselect = json_decode($_POST['productselect'], true);
$valuesSql = array();
foreach ($productselect as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
mysql_real_escape_string($_POST['qtID']),
mysql_real_escape_string($row['QT_NO']),
mysql_real_escape_string($row['PRO_ID']),
mysql_real_escape_string($row['amount'])
);
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
?>
Date :
2014-12-04 01:18:43
By :
top113457
ต้อง check error แล้วครับ ที่ว่าไม่ได้นี่คือมัน alert ว่า Fail หรือว่า OK ครับ
ถ้ามัน alert OK ก็ต้องดู error จาก mysql แล้วล่ะครับ
class Core นี่มันมีแสดง error มั้ยครับ
แต่ก็ต้องถามก่อนว่า class Core นี่มันใช้ mysql แบบไหน mysqli หรือ mysql แบบเก่า
เพราะถ้าใช้ mysqli หรือ PDO โค้ดที่ผมให้ไปมันจะใช้ไม่ได้ เพราะมันใช้ mysql แบบเก่า
Date :
2014-12-04 01:26:26
By :
phpinfo()
Code (JavaScript)
function btnSendData() {
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(),
QT_ID: $("#quoteid").val(),
});
});
$.ajax({
type: "POST",
url: "insertQuote.php",
data: {
productselect : JSON.stringify(rows), // $_POST['productselect']
qtID: qtid, // $_POST['qtID']
date: date // $_POST['date']
},
success: function (response)
{
alert(response); // เพิ่มนี่ดู จะได้รู้ว่าถ้ามี error ฝั่ง php เช่น Fatal error หรือ Warning
alert("OK");
},
error: function ()
{
alert("Fail");
}
});
$("#sendData").hide();
}
Date :
2014-12-04 01:27:37
By :
phpinfo()
เพิ่ม escape() เข้าไปใน class Core ครับ แล้วเปลี่ยน mysql_real_escape_string เป็น $obj->escape
<?php
class Core {
protected $db, $result;
private $rows;
public function __construct(){
$this->db = new mysqli('localhost','root','','mydatabase');
$this->db->query("SET character_set_results=utf8");
$this->db->query("SET character_set_client=utf8");
$this->db->query("SET character_set_connection=utf8");
}
public function query($sql){
$this->result = $this->db->query($sql);
}
public function rows(){
for($x = 1 ; $x <= $this->db->affected_rows ; $x++){
$this->rows[]=$this->result->fetch_assoc();
}
return $this->rows;
}
public function fetch_array(){
return $this->result->fetch_array();
}
public function fetch_assoc(){
return $this->result->fetch_assoc();
}
public function num_rows(){
return $this->result->num_rows;
}
public function escape($sql){
return $this->db->real_escape_string($sql);
}
}
?>
แต่ error หลักๆ ต้องดูข้อมูลกันใหม่แล้วครับ
ทำไม qtID ถึงเป็น array ใน JavaScript ครับ คุณต้องการทำอะไรกันแน่
เข้าใจโค้ด JavaScript ที่ทำอยู่หรือเปล่า หรือว่าเอาโค้ดใครมาแก้
Date :
2014-12-04 01:45:23
By :
phpinfo()
ผมก็เพิ่งสังเกต
Code (JavaScript)
var qtid=[];
var date = [];
qtid และ date มันเป็น array ทำไมถึงเป็น array ครับ
Date :
2014-12-04 01:48:35
By :
phpinfo()
อ่านคำตอบ 27 ดูอีกทีครับ
Date :
2014-12-04 02:07:25
By :
phpinfo()
เปลี่ยนตรงนี้ด้วยหรือเปล่าล่ะครับ
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
$obj->escape($row['qtID']),
$obj->escape($row['date']),
$obj->escape($result),
'รอการอนุมัติ'
);
Date :
2014-12-04 02:26:55
By :
phpinfo()
ตอบความคิดเห็นที่ : 32 เขียนโดย : phpinfo() เมื่อวันที่ 2014-12-04 02:26:55
รายละเอียดของการตอบ ::
เปลี่ยนแล้วครับพี่
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();
$obj->query(
sprintf(
"
INSERT into quote
(QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS)
VALUES
('%s', '%s', '%s', '%s')
",
$obj->escape($_POST['qtID']),
$obj->escape($_POST['date']),
$obj->escape($result),
'รอการอนุมัติ'
)
);
$productselect = json_decode($_POST['productselect'], true);
$valuesSql = array();
foreach ($productselect as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
$obj->escape($_POST['qtID']),
$obj->escape($row['QT_NO']),
$obj->escape($row['PRO_ID']),
$obj->escape($row['amount'])
);
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
?>
Date :
2014-12-04 02:30:53
By :
top113457
ถ้าเป็นแบบนี้น่าจะดีกว่านะครับ เพราะ
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);
เป็นโค้ดที่ไม่มีประโยชน์เลย
เปลี่ยนเป็นแบบนี้ดีกว่า
function btnSendData() {
/*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(),
QT_ID: $("#quoteid").val(),
});
});
$.ajax({
type: "POST",
url: "insertQuote.php",
data: {
productselect : JSON.stringify(rows), // $_POST['productselect']
// ใส่เข้าไปตรงๆ ไม่ต้องไปซ้อนกันเหมือนตอนแรกให้ยุ่งยาก
qtID: $("#quoteid").val(), // $_POST['qtID']
date: $("#date").val() // $_POST['date']
},
success: function (response)
{
alert(response); // เพิ่มนี่ดู จะได้รู้ว่าถ้ามี error ฝั่ง php เช่น Fatal error หรือ Warning
alert("OK");
},
error: function ()
{
alert("Fail");
}
});
$("#sendData").hide();
}
ประวัติการแก้ไข 2014-12-04 02:57:20
Date :
2014-12-04 02:56:00
By :
phpinfo()
ส่วน Fatal Error ของ $obj->escape นี่คุณแน่ใจหรือยังว่าคุณแก้ไข Core.php และ save เรียบร้อยแล้ว
Date :
2014-12-04 02:58:23
By :
phpinfo()
ตอบความคิดเห็นที่ : 38 เขียนโดย : phpinfo() เมื่อวันที่ 2014-12-04 02:58:23
รายละเอียดของการตอบ ::
ครับ save แล้ว ตอนนี้ขึ้นแค่ warning mysql_real_escape_string() expects parameter 1 to be string array given in อย่างเดียวคับ
Code (JavaScript)
function btnSendData() {
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(),
// QT_ID: $("#quoteid").val(),
date: $("#date").val(),
});
});
console.log(JSON.stringify(rows));
$.ajax({
type: "POST",
url: "insertQuote.php",
data: {
productselect : JSON.stringify(rows), // $_POST['productselect']
qtID: $("#quoteid").val(), // $_POST['qtID']
date: $("#date").val()// $_POST['date']
},
success: function (response)
{
alert(response);
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();
$obj->query(
sprintf(
"
INSERT into quote
(QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS)
VALUES
('%s', '%s', '%s', '%s')
",
$obj->escape($_POST['qtID']),
$obj->escape($_POST['date']),
$obj->escape($result), //มันฟ้องตรงqueryนีอะคับ
'รอการอนุมัติ'
)
);
$productselect = json_decode($_POST['productselect'], true);
$valuesSql = array();
foreach ($productselect as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
$obj->escape($_POST['qtID']),
$obj->escape($row['QT_NO']),
$obj->escape($row['PRO_ID']),
$obj->escape($row['amount'])
);
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
?>
ประวัติการแก้ไข 2014-12-04 03:08:30
Date :
2014-12-04 03:07:58
By :
top113457
เด๋วครับ มันมาจากไหน ในเมื่อไม่ได้ใช้ mysql_real_escape_string() แล้ว
แล้วก็ไม่มี Array ส่งไปแล้ว ผมเริ่มงงแล้วครับ
Date :
2014-12-04 03:50:44
By :
phpinfo()
อ๋อ เห็นแล้วครับ
$result นี่จะเก็บฟิลด์ไหนก็ระบุด้วยครับ
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();
$obj->query(
sprintf(
"
INSERT into quote
(QT_ID,QT_DATE,EMP_ID_QU,QT_STATUS)
VALUES
('%s', '%s', '%s', '%s')
",
$obj->escape($_POST['qtID']),
$obj->escape($_POST['date']),
$obj->escape($result['ชื่อฟิลด์']), // ระบุด้วยว่าจะเก็บค่าฟิลด์ไหน
'รอการอนุมัติ'
)
);
$productselect = json_decode($_POST['productselect'], true);
$valuesSql = array();
foreach ($productselect as $row) {
$valuesSql[] = sprintf(
"('%s','%s','%s','%s')",
$obj->escape($_POST['qtID']),
$obj->escape($row['QT_NO']),
$obj->escape($row['PRO_ID']),
$obj->escape($row['amount'])
);
}
$obj->query("INSERT into quote_detail (QT_ID,QT_NO,PRO_ID,QT_AMOUNT) VALUES ". implode(',', $valuesSql));
?>
Date :
2014-12-04 03:52:41
By :
phpinfo()
สิ่งสำคัญ จขกท ไม่ยอมเปลียนรูปแบบการส่ง เพราะไม่เข้าใจ รูปแบบตัวแปรที่ส่งเป็น array
ลองไปศึกษารูปแบบของตัวแปร array ให้ชัดเจนก่อนครับ
จาก คห 15 ศึกษา วิธีเรียกใช้ ให้ถูกต้อง ก่อน ครับ
เรียกใช้ไม่เป็น แล้วจะได้ค่าที่ต้องการมาอยางไร
Date :
2014-12-04 07:44:14
By :
Chaidhanan
Load balance : Server 00