ขอสอบถามเรื่อง Ajax กับ SQL ไม่สามารถ Insert into ข้อมูลลงฐานข้อมูลได้ครับ (Ajax)
main.php
<!doctype html>
<html lang="en">
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('input[name*="txtStudentID"]').change("change", function (){
var currentIndex = $(this).closest("tr")[0].rowIndex;
$.ajax({
url: "page111.php" ,
type: "POST",
data: 'Sstd_id=' +$("#txtStudentID"+currentIndex).val()
})
.success(function(result) {
console.log(result);
var obj = jQuery.parseJSON(result);
if(obj == '')
{
$("#txtStudentID"+currentIndex).val('');
$("#txtFullname"+currentIndex).val('');
$("#txtDepartment"+currentIndex).val('');
}
else
{
$.each(obj, function(key, inval) {
$("#txtStudentID"+currentIndex).val(inval["std_number"]);
$("#txtFullname"+currentIndex).val(inval["std_fullname"]);
$("#txtDepartment"+currentIndex).val(inval["std_department"]);
});
}
});
});
});
</script>
</head>
<body>
<center>
<h2>เพิ่มข้อมูลนักศึกษา</h2>
<br>
<form name="add_name" id="add_name">
<table width="800" border="1">
<tr>
<th width="200"> <div align="center">รหัสประจำตัวนักศึกษา</div></th>
<th width="300"> <div align="center">ชื่อ-นามสกุล </div></th>
<th width="300"> <div align="center">สาขาวิชา</div></th>
</tr>
<?php
$list =+ 1;
?>
<tr>
<td><div align="center"><input type="text" name="txtStudentID<?php echo $list;?>" id="txtStudentID<?php echo $list;?>" size="15" placeholder="Number"></div></td>
<td><div align="center"><input type="text" name="txtFullname<?php echo $list;?>" id="txtFullname<?php echo $list;?>" size="30" placeholder="Fullname" disabled="disabled" /></td>
<td><div align="center"><input type="text" name="txtDepartment<?php echo $list;?>" id="txtDepartment<?php echo $list;?>" size="25" placeholder="Department" disabled="disabled" /></td>
</tr>
</table>
<input type="button" name="submit" id="submit" class="btn btn-info" value="Submit" />
</form>
<script>
$(document).ready(function(){
$('#submit').click(function(){
$.ajax({
url:"insert.php",
method:"POST",
data:$('#add_name').serialize(),
success:function(data) {
if(data.status == 1) // Success
{
console.log(data);
alert(data.message);
}
else // Err
{
console.log(data);
alert(data.message);
}
}
// {
//console.log(data);
// alert(data);
// $('#add_name')[0].reset();
//}
});
});
});
</script>
</body>
</html>
insert.php
<?php
$connect = mysqli_connect("localhost", "root", "", "activity");
//error_reporting(E_ALL && ~E_NOTICE);
$txtStudentID = $_POST['std_name'];
$txtFullname = $_POST['fullname'];
$txtDepartment= $_POST['department'];
$sql = "INSERT INTO tbl_name (std_name, fullname, department)
VALUES ('$std_name',
'$fullname',
'$department')";
$query = mysqli_query($connect,$sql);
if($query){
echo json_encode("Data Inserted Successfully");
}
else
{
echo json_encode('problem');
}
mysqli_close($connect);
?>
Tag : PHP, MySQL, Ajax
ประวัติการแก้ไข 2019-06-18 14:21:38 2019-06-18 15:23:19
Date :
2019-06-18 14:18:50
By :
10219617711257047
View :
1021
Reply :
6
เอา tag php ครอบให้เหมือนชาวบ้านเขาหน่อยครับ เครื่องไม้เครื่องมืออยู่เหนือ ช่องกรอกข้อมูลดูและใช้งานให้เป็น จะได้อ่านง่าย
ส่วนคำถาม อันดับแรก ต้องรู้ว่า error มันคืออะไร
ให้ใช้เครื่องมือของ browser ตรวจสอบ
เปิด menu developer เพื่อตรวจสอบการทำงาน
Date :
2019-06-18 14:24:34
By :
Chaidhanan
ตอนส่ง input ชื่อหนึ่ง
Code (PHP)
<tr>
<td><div align="center"><input type="text" name="txtStudentID<?php echo $list;?>" id="txtStudentID<?php echo $list;?>" size="15" placeholder="Number"></div></td>
<td><div align="center"><input type="text" name="txtFullname<?php echo $list;?>" id="txtFullname<?php echo $list;?>" size="30" placeholder="Fullname" disabled="disabled" /></td>
<td><div align="center"><input type="text" name="txtDepartment<?php echo $list;?>" id="txtDepartment<?php echo $list;?>" size="25" placeholder="Department" disabled="disabled" /></td>
</tr>
แต่ตอน รับ เป็นอีกชื่อหนึ่ง
Code (PHP)
$txtStudentID = $_POST['std_name'];
$txtFullname = $_POST['fullname'];
$txtDepartment= $_POST['department'];
และ ไปกำหนดใส่ตัวเลขต่อท้าย ชื่อ ด้วย <?php echo $list;?>
Date :
2019-06-18 15:16:17
By :
9nonameman
ขอโทษด้วยครับอาจารย์ พอดีผมเพิ่งสมัครสมาชิกและโพสเป็นครั้งแรก
ขอบคุณสำหรับคำแนะนำครับ
มันแสดงข้อความว่า alert "undefined"
ส่วนใน console log มันขึ้นข้อความ ดังนี้ครับ
ผมเช็คใน cosole log แบบนี้ครับ
<br />
<b>Notice</b>: Undefined index: std_name in <b>C:\xampp\htdocs\activity\insert.php</b> on line <b>27</b><br />
<br />
<b>Notice</b>: Undefined index: fullname in <b>C:\xampp\htdocs\activity\insert.php</b> on line <b>28</b><br />
<br />
<b>Notice</b>: Undefined index: department in <b>C:\xampp\htdocs\activity\insert.php</b> on line <b>29</b><br />
<br />
<b>Notice</b>: Undefined variable: std_name in <b>C:\xampp\htdocs\activity\insert.php</b> on line <b>33</b><br />
<br />
<b>Notice</b>: Undefined variable: fullname in <b>C:\xampp\htdocs\activity\insert.php</b> on line <b>34</b><br />
<br />
<b>Notice</b>: Undefined variable: department in <b>C:\xampp\htdocs\activity\insert.php</b> on line <b>34</b><br />
"problem"
ผมใช้ Google Chorme ครับผม
ขอคุณครับ
Date :
2019-06-18 15:16:24
By :
10219617711257047
ตาม คห 2 นะครับ ตัวแปลที่ใช้อ้างอิงใน php $_POST['มาจาก attribute name']
แต่เนื่องจาก attribute ตัวแปร เป็นแบบ dynamic เราควร กำหนดให้มันเป็นแบบ array
Code (PHP)
<tr>
<td><div align="center"><input type="text" name="txtStudentID[<?=$list?>]" id="txtStudentID<?=$list?>" size="15" placeholder="Number"></div></td>
<td><div align="center"><input type="text" name="txtFullname[<?=$list?>]" id="txtFullname<?=$list?>" size="30" placeholder="Fullname" disabled="disabled" /></td>
<td><div align="center"><input type="text" name="txtDepartment[<?=$list?>]" id="txtDepartment<?=$list?>" size="25" placeholder="Department" disabled="disabled" /></td>
</tr>
<?php // ตัวรับ
foreach($_POST['txtStudentID'] as $k=>$txtStudentID){
echo $txtStudentID, ' ', $_POST['txtFullnmae'][$k],' ', $_POST['txtDepartment'][$k], '<br>';
}
Date :
2019-06-18 17:16:44
By :
Chaidhanan
ขอบคุณทุกท่านๆ ครับผม
Date :
2019-06-18 19:10:33
By :
10219617711257047
Load balance : Server 03