10/10/2018, 10:32

Cần giúp đở tách code checkbox

Mình có làm cái form xóa bằng checkbox. Đây là file hoàn chỉnh của mình, thực hiện xóa rất tốt.
PHP Code:
// Kiểm tra Checkall
<script language="javascript">
// JavaScript Document
function docheck(value)
{
var checks = document.getElementsByName('checkbox***91;***93;');
var boxLength = checks.length;
if(value == true)
{
for(i = 0;i < boxLength;i++)
checks***91;i***93;.checked = true;
document.frmList.chkall.checked = true;
}
else
{
for(i = 0;i < boxLength;i++)
checks***91;i***93;.checked = false;
document.frmList.chkall.checked = false;
}
}
</script>
/////
<?php
define
('IN_MEDIA',true);

include(
'includes/config.php');

include(
'includes/functions.php');

include(
'includes/class_template.php');
 
//declare the SQL statement that will query the database 

$sql "SELECT * FROM ***91;project***93;";


//execute the SQL query and return records
$result mssql_query($sql);

$count=mssql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="frmList" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="chkall" type="checkbox" value="" onClick="docheck(document.frmList.chkall.checked); "></td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Ten nguoi dung</strong></td>
</tr>
<?php
while($row mssql_fetch_array($result))
{
?>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input name="checkbox***91;***93;"type="checkbox" id="checkbox***91;***93;" value="<? echo $row***91;'id'***93;;?>"></td>
<td bgcolor="#FFFFFF"><? echo $row***91;'id'***93;; ?></td>
<td bgcolor="#FFFFFF"><? echo $row***91;'project_name'***93;; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete"type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this

if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox***91;$i***93;;
$sql = "DELETE FROM ***91;project***93; WHERE id='$del_id'";

$result = mssql_query($sql);
}

// if successful redirect to test.php
if($result){
echo "<meta http-equiv="refresh" content="0;URL=test.php">";
}
}
mssql_close($dbhandle);
?>
</table>
</form>
</td>
</tr>
</table>
Vấn đề mà mình gặp phải là, làm thế nào để tách file test.php thành 2 file test.php (file thực thi) và test.html (file chứa form). Ngay chổ này <input name="checkbox[]"type="checkbox" id="checkbox[]" value="<? echo $row['id'];?>"> phần value="? echo $row['id'];?>" cần phải thay như thế nào khi chuyển qua file html để nhận giá trị của csdl về.

Thanks all
dinhanhency viết 12:45 ngày 10/10/2018
Chưa hiểu ý bạn. Như code trên là trả về html từ csdl rồi.
pdkhoa viết 12:36 ngày 10/10/2018
Chưa hiểu ý bạn. Như code trên là trả về html từ csdl rồi.

Ý mình là tách code ra 1 file .php và form ra 1 file .html

Và trong file html làm sao để chổ
<input name="checkbox[]"type="checkbox" id="checkbox[]" value="<? echo $row['id'];?>"> phần value="? echo $row['id'];?>" cần phải thay như thế nào khi chuyển qua file html để nhận giá trị của csdl về.
Vì khi tách ra mình nhấn nút xóa thì nó không làm gì cả
thuyduongcd viết 12:47 ngày 10/10/2018
html thì không thể tương tác với CSDL được.
pdkhoa viết 12:47 ngày 10/10/2018
Được gửi bởi thuyduongcd
html thì không thể tương tác với CSDL được.
Là như thế này, đánh dấu vào các checkbox cần xóa,khi nhấn nút Xóa từ trang test.html thì sẽ chuyển qua trang test.php để xử lý. Ý mình muốn hỏi là chổ phần <input type="checkbox" name="check[]" values=""> thì cái values="" cần điền giá trị gì để nhận id từ csdl để mà xóa á.

Mình giải thích không được rõ lắm, các bạn cố giúp dùm tí >.<
ngoc_viet08 viết 12:48 ngày 10/10/2018
tách 1 trang chỉ có code php và 1 trang html á ? cách thức làm template engine mới á ?
yếu căn bản rồi . html thì ko nhận giá trị từ csdl được . khỏi tách đi . vững rồi tách .
thuyduongcd viết 12:45 ngày 10/10/2018
html thì không thể tương tác với CSDL được. Do đó không thể nhận id từ csdl để mà xóa
Tuy nhiên có 1 cách này, không biết có đáp ứng yêu cầu của bạn không.
Giả sử có 2 file test.php và test.html

test.html
Code:
<!-- html code -->
....
[checkbox]
....
file test.php
Code:
//connectDB
$sql="SELECT * FROM table";
$result=mysql_query*$sql);
$checkbox_content="";
while ($row=mysql_fetch_array($result))
{
   $checkbox_content.='<input name="checkbox[]"type="checkbox" id="checkbox[]" value="'.$row['id'].'">'.$row['project_name'].'<br />';
}

$strHTML=file_get_content("test.html");
$strHTML=str_replace("[checkbox]",$checkbox_content,$strHTML);

echo $strHTML;
Như vậy, khi bạn gọi file test.php, nó sẽ đọc nội dung file test.html và thay thế phần [checkbox] bằng phần nội dung truy vấn từ CSDL
ngoc_viet08 viết 12:38 ngày 10/10/2018
ặc , rắc rối vậy . có lẽ bạn ấy chỉ thử tách biệt code php và html ra thôi đó mờ
lenggiauit viết 12:47 ngày 10/10/2018
..........................
pdkhoa viết 12:45 ngày 10/10/2018
hì, thanks các bạn.
Đã làm phiền nhiều, ý mình ở đây chỉ là tách code ra cho dễ nhìn thôi.

Topic này close đc rồi.

1 lần nữa thanks all, dịp khác lại hỏi tiếp
Bài liên quan
0