10/10/2018, 09:31
Tại sao Form Submit mà ko thực thi lệnh
Mình đang làm một trang Administrator.(thực tập tốt nghiệp). Cũng mới học PHP.
Mình có vấn đề sau, nhờ mọi người giải quyết giúp.
Mình làm form sửa dữ liệu, nhưng khi ấn nút Cập nhật. Rõ ràng form đã submit nhưng nó không thực hiện lệnh Update. Form thêm dữ liệu thì lại được. Mọi người xem dùm lỗi ở chỗ nào. Không thấy nó thông báo lỗi mới đau. Chỉ thấy trở lại y nguyên trang cập nhật.Pó tay
Đây là funtion editCat của mình trong file process.php.
Đây là form Edit:
Hiện trạng trang khi ấn nút Submit. Các function khác hoạt động bình thường như: Thêm, Xóa. Chỉ có sửa là có vấn đề.
Mình có vấn đề sau, nhờ mọi người giải quyết giúp.
Mình làm form sửa dữ liệu, nhưng khi ấn nút Cập nhật. Rõ ràng form đã submit nhưng nó không thực hiện lệnh Update. Form thêm dữ liệu thì lại được. Mọi người xem dùm lỗi ở chỗ nào. Không thấy nó thông báo lỗi mới đau. Chỉ thấy trở lại y nguyên trang cập nhật.Pó tay
Đây là funtion editCat của mình trong file process.php.
PHP Code:
$act = (isset($_GET***91;'act'***93;) && $_GET***91;'act'***93;) ? $_GET***91;'act'***93; : ';
switch($act){
case 'add':
addCat();
break;
case 'edit':
editCat();
break;
case 'delete':
deleteCat();
break;
default:
header('Location: index.php');
}
function editCat(){
$cat_id = (int)$_GET***91;'sId'***93;;
$cat_name = $_POST***91;'txtName'***93;;
$cat_name_ascii = $_POST***91;'txtNameAscii'***93;;
$cat_type = $_POST***91;'txtNameType'***93;;
$q = "UPDATE m_cat
SET cat_name = '".$cat_name."', cat_name_ascii = '".$cat_name_ascii."',cat_type=".$cat_type."
WHERE cat_id = ".$cat_id;
$rs = dbQuery($q) or die ('Không thể cập nhật thông tin Category này.' . mysql_error());
header ('Location: index.php');
}
PHP Code:
<?php
if(isset($_GET***91;'sId'***93;) && $_GET***91;'sId'***93; > 0){
$sId = $_GET***91;'sId'***93;;
}
else{
header ('Location: index.php');
}
$q = "SELECT cat_name,cat_name_ascii,cat_type
FROM m_cat
WHERE cat_id = $sId";
$rs = dbQuery($q);
$r = dbFetchAssoc($rs);
extract($r);
?>
<table width="100%" border="0" cellpadding="2" cellspacing="1">
<form name="process.php?act=edit&sId=<?php echo $sId;?>" method="post" name="frmCat" id="frmCat" onsubmit="return checkFrmCat();">
<tr>
<td>Tên Category:</td>
<td><input type="text" name="txtName" size="40" value="<?php echo $cat_name;?>" class="textbox"></td>
</tr>
<tr>
<td>Tên Category - Ascii:</td>
<td><input type="text" name="txtNameAscii" size="40" value="<?php echo $cat_name_ascii;?>" class="textbox"></td>
</tr>
<tr>
<td>Type:</td>
<td><input type="text" name="txtNameType" size="40" value="<?php echo $cat_type;?>" class="textbox"></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Cập Nhật" class="button">
</tr>
</form>
</table>
Bài liên quan
SET cat_name = '".$cat_name."', cat_name_ascii = '".$cat_name_ascii."',cat_type=".$cat_type."
WHERE cat_id = ".$cat_id;
"UPDATE m_cat
SET cat_name = '$cat_name', cat_name_ascii = '$cat_name_ascii',cat_type='$cat_type'
WHERE cat_id = '$cat_id'"
SET cat_name = '".$cat_name."', cat_name_ascii = '".$cat_name_ascii."',cat_type=".$cat_type."
WHERE cat_id = ".$cat_id;
$rs = dbQuery($q) or die ('Không thể cập nhật thông tin Category này.' . mysql_error());
header ('Location: index.php');
$rs = dbQuery("UPDATE m_cat
SET cat_name = '$cat_name', cat_name_ascii = '$cat_name_ascii',cat_type='$cat_type'
WHERE cat_id = '$cat_id'");
if (!$rs)
{
...error...
}
ủa mà cái này you làm function mà ? function chỉ hoạt động khi nó được dùng thôi chứ .bỏ function đi .
Dùng
$cat_id = (int)$_GET***91;'sId'***93;;
"UPDATE m_cat
SET cat_name = '$cat_name', cat_name_ascii = '$cat_name_ascii',cat_type='$cat_type'
WHERE cat_id = '$cat_id'"
$rs = dbQuery("UPDATE m_cat
SET cat_name = '$cat_name', cat_name_ascii = '$cat_name_ascii',cat_type='$cat_type'
WHERE cat_id = '$cat_id'");
if (!$rs)
{
...error...
}
Ai có cao kiến khác không
thực ra lỗi đó cũng có thể nói là tại bất cẩn, làm việc không theo chuẩn nó quen rồi.
đọc thêm:
http://ddth.com/showthread.php?t=119870
Nói bất cẩn chung chung thì không bao giờ rút ra kinh nghiệm được đâu
p/s: lỗi của bạn được đánh giá là basic, kiểu như lỗi thiếu dấu chấm phẩy trong lập trình vậy, thậm chí nặng hơn, những lỗi đó đều có tool để chống sai cả. Khi bị sai, thì việc đầu tiên là duyệt lại xem có sai chuẩn không, ví dụ chuẩn viết code. Cho nên tốt nhất là luôn đúng chuẩn trước đã.
WHERE cat_id = ".$cat_id;
WHERE cat_id = ".$cat_id."";
Nếu thêm