|
|
|
ติดปัญหา serializeArray ส่งค่ามาไม่ครบทุก input ช่วยดูทีครับ |
|
|
|
|
|
|
|
ผมใช้ ajax ส่งค่าไปบันทึกซึ่งส่งไปแบบ serializeArray
แต่ติดตรง input std_id[],prefix[],std_name[],std_surname[] ทุก input ที่อยู่ใน function addrow() ไม่ส่งค่ามาครับ
Code (PHP)
$id = htmlspecialchars($_POST['std_id']);
if(isset($id)) {
foreach($id as $value) {
$std = $db->prepare('INSERT INTO tbl_std(id,std_id,logs_id)
VALUES (:last_std,:std_id,:logs) ');
$std->bindParam(':last_std',$last_std,PDO::PARAM_INT);
$std->bindParam(':logs',$last_id,PDO::PARAM_INT);
$std->bindParam(':std_id',$value,PDO::PARAM_STR);
// $std->bindParam(':prefix',$prefix,PDO::PARAM_INT);
$std->execute();
$last_std = $db->lastInsertId();
}
}
Code (PHP)
<script type="text/javascript">
$(document).ready(function() {
$('#submit').click(function() {
var barcode = $('#barcodeMachine');
if(barcode.val() == ''){ // Check the password values is empty or not
barcode.focus();
$('div.barcode').addClass('has-error');
$('div.msg-barcode').html('<span class="text-danger">กรุณาใส่บาร์โค้ด !</span>');
$('div.msg').html('<span class="text-danger">ชื่อเรื่อง !</span>');
return false;
}
else if (barcode.val() != ''){
$('div.barcode').removeClass('has-error').addClass('has-success');
$('span.text-danger').remove();
}
if(barcode.val() != ''){
var urlval = $("#borrow").serializeArray();
$.ajax({
type : 'POST',
data : urlval,
url : 'save-borrow.php',
success:function(data, textStatus, jqXHR){
if (textStatus == 'success'){
alert(data);
$('#submit').html('<img src="image/fbloader.gif" />');
setTimeout("location.href = 'index.php';",1500);
}
else {
barcode.val('');
$('#divResult').html('<span class="text-danger">ผิดพลาด !!</span>');
}
}
});
}
return false;
}); // click
}); // document
</script>
Code (PHP)
function AddRow(){
var tr_id = 'tr_'+($('#myTable tr').length+1);
$("#myTable").append(
'<tr id="'+tr_id+'">'+
'<td><button type="button" class="btn btn-danger btn-xs"> -- </button></td>'+
'<td><input type="text" class="form-control input-sm std_id" maxlength="14" name="std_id[]" placeholder="รหัสนักศึกษา" onkeyup="disSubmit($(this).val())"></td>'+
'<td><select class="form-control input-sm" name="prefix[]">'+
'<option value="1">นาย</option>'+
'<option value="2">น.ส.</option>'+
'<option value="3">นาง</option>'+
'</select></td>'+
'<td><input type="text" class="form-control input-sm std_name" name="std_name[]" placeholder="ชื่อ" readonly></td>'+
'<td><input type="text" class="form-control input-sm std_surname" name="std_surname[]" placeholder="นามสกุล" readonly></td>'+
'</tr>'
);
Tag : PHP, MySQL, JavaScript, Ajax, jQuery
|
|
|
|
|
|
Date :
2015-08-26 09:54:36 |
By :
littlebeer |
View :
1064 |
Reply :
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print_r( $_POST); มาดูค่าที่ได้รับมาแล้ว อ้างอิงให้ถูกครับ
Code
if(isset($id)) {
foreach($id as $value) {
$std = $db->prepare('INSERT INTO tbl_std(id,std_id,logs_id)
VALUES (:last_std,:std_id,:logs) ');
$std->bindParam(':last_std',$last_std,PDO::PARAM_INT);
$std->bindParam(':logs',$last_id,PDO::PARAM_INT);
$std->bindParam(':std_id',$value,PDO::PARAM_STR);
// $std->bindParam(':prefix',$prefix,PDO::PARAM_INT);
$std->execute();
$last_std = $db->lastInsertId();
}
}
พวกสีแดงมาจากไหนได้ถูกกำหนดไว้หรือยังครับ
ปล. ลองอ่านกระทู้นี้ดูครับ ผมเอาของคุณมาดัดแปลงสอนคนอื่นต่อ
https://www.thaicreate.com/php/forum/118542.html#00427544
|
ประวัติการแก้ไข 2015-08-26 10:06:04
|
|
|
|
Date :
2015-08-26 10:03:19 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่เห็นการอิง key ในตัวแปร ครับ
Code (PHP)
foreach ($id as $key => $value) {
// **** //
$std->bindParam(':last_std',$last_std[$key],PDO::PARAM_INT);
// **** //
}
|
|
|
|
|
Date :
2015-08-26 10:16:11 |
By :
CasanovaKung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอามาแค่บางส่วนเลยไม่เห็นปัญหาอะครับ ก็ตามคอมเม้นท์อะครับ
ทำการตรวจสอบที่ละขั้น เริ่มจากดูข้อมูล จากคำสั่ง print_r( $_POST); ว่าข้อมูลมาถูกต้องครบไหม
ถ้าไม่ครบก็ตรวจสอบหน้าส่งข้อมูล แต่ถ้าครบก็ตรวจสอบหน้ารับข้อมูล
|
|
|
|
|
Date :
2015-08-26 10:16:22 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
print_r($_POST);
result จะมาตอนไหน?
|
|
|
|
|
Date :
2015-08-26 11:24:17 |
By :
CasanovaKung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลอง alert ดู ข้อมูลก็มาหมดแต่ทำไม 4 ตัวที่ว่ามันไม่เข้า db
|
ประวัติการแก้ไข 2015-08-26 12:50:29
|
|
|
|
Date :
2015-08-26 12:41:05 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อิงตัวแปรไม่ถูกครับ เลยไม่เข้า
|
|
|
|
|
Date :
2015-08-26 13:18:30 |
By :
CasanovaKung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็บอกให้เอาโค๊ดจริงมา เอามาแค่บางส่วน ก็ต้องหาเองล่ะครับ 5555
เอาโค๊ดมา แค่เก็บ user password เอาไว้ ไม่ต้องกลัวคนอื่นลอกเลียนแบบหรอกครับ
ตัวอย่างมันเยอะไปในเวป ดีๆทั้งนั้้น
|
|
|
|
|
Date :
2015-08-26 14:14:19 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองทำแล้วครับ ใส่ข้อมูลไป 2 เข้า db 1
ไม่รู้วนลูปหรือทำถูกมั้ย
Code (PHP)
$id = $_POST['std_id'];
if(isset($id)) {
for ($i = 0; $i < count($id); $i++) {
$std_id = $id[$i];
$std = $db->prepare('INSERT INTO tbl_std(id,std_id,logs_id)
VALUES (:last_std,:std_id,:logs)
ON DUPLICATE KEY UPDATE id = id+1 ');
$std->bindParam(':last_std',$last_std,PDO::PARAM_INT);
$std->bindParam(':logs',$last_id,PDO::PARAM_INT);
$std->bindParam(':std_id',$std_id,PDO::PARAM_STR);
$std->execute();
$last_std = $db->lastInsertId();
}
}
|
|
|
|
|
Date :
2015-08-26 15:36:32 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$std_id = $id[$i];
ใส่ key แค่อันเดียวหรอ?
แล้วอันอื่น?
|
|
|
|
|
Date :
2015-08-26 15:46:54 |
By :
CasanovaKung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|