09/10/2018, 22:38

Hỏi một chút về Checkbox !

+ Tớ có 10 cái check box , giờ chỉ check 3 cái thôi, vậy khi submit làm sao mình biết được tổng số check là 3 cái ?

+ Tớ có 2 trang , mỗi trang có các items để check , vậy làm sao mình lấy 2 giá trị của 2 cái check box ở 2 trang khác nhau ?

Xin cảm ơn !
satthuhuydiet viết 00:43 ngày 10/10/2018
Quote Được gửi bởi NsT
+ Tớ có 10 cái check box , giờ chỉ check 3 cái thôi, vậy khi submit làm sao mình biết được tổng số check là 3 cái ?

+ Tớ có 2 trang , mỗi trang có các items để check , vậy làm sao mình lấy 2 giá trị của 2 cái check box ở 2 trang khác nhau ?

Xin cảm ơn !
Cái này đơn giản thôi mà cậu viết cái vòng lặp nhận các giá trị checkbox $_POST["checkbox_$i"]; là đươc:
Hồi mới học php ngồi suy nghỉ cái này mình củng khổ lắm mới viết được hê hê:
Diển đàn không cho attach nên mình chép cái ví dụ về Delete all của mình cho you xem :
tạo file unknown.php
PHP Code:
<?php
require ("config.php");
require (
"class.php");
$data = new db(); 
$data->connect();
?>
<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
-->
</style>
<script language="javascript">
    function checkall()
    {
        for (i = 0; i < document.myform.checkbox.length; i++)
        document.myform.checkbox***91;i***93;.checked = true ;
    }

    function uncheckall()
    {
        for (i = 0; i < document.myform.checkbox.length; i++)
        document.myform.checkbox***91;i***93;.checked = false ;
    }
</script>
<form name="myform" method="post" action="action_delete.html">
  <table width="30%"  border="1" cellpadding="0" cellspacing="0" bordercolor="#999999" bgcolor="#CCCCCC">
    <tr bordercolor="#CCCCCC" bgcolor="#999999">
      <td width="22%"><span class="style3">&nbsp;ID</span></td>
      <td width="60%" bgcolor="#999999"><span class="style3">&nbsp;Name</span></td>
      <td width="18%"><span class="style3">&nbsp;Action</span></td>
    </tr>
    <?php
        $query 
$data->query("SELECT * FROM delete_all ORDER BY id DESC");
        while(
$n=$data->fetch_array($query)){
    
?>
    <tr bordercolor="#999999" bgcolor="#CCCCCC">
      <td>&nbsp;<a href="<?=$n***91;"id"***93;?>.html"><?=$n***91;"id"***93;?></a></td>
      <td>&nbsp;<?=$n***91;"text"***93;?></td>
      <td align="center"><input type="checkbox" id="checkbox" name="checkbox_<?=$n***91;"id"***93;?>" value="1"></td>
    </tr>
    <?
        }
    ?>
  </table>
  <br>
  <input name="CheckAll" type="button" id="CheckAl" value="Check all" onClick="checkall()">
  <input name="UnCheckAll" type="button" id="UnCheckAll" value="Uncheck all" onClick="uncheckall()">
  <input name="Delete" type="submit" id="Delete" value="Delete">
</form>
<a href="add.html">Add</a>
tạo file add.php:

PHP Code:
<FORM METHOD="POST" ACTION="action_add.html">
    <
INPUT TYPE="add" NAME="text">&nbsp;<INPUT TYPE="submit" name="submit" value="Add">
</
FORM>
<
a href="index.html">Index</a
tạo file action.php
PHP Code:
<?php
require ("config.php");
require (
"class.php");
$data = new db(); 
$data->connect();
if(
$act=="add"){
    
$input "INSERT INTO  delete_all (text) VALUES ('$text')";
    
$query $data->query($input);
    
header("Location: add.html");
}
if(
$act=="delete"){
    
$query=$data->query("SELECT id FROM delete_all ORDER BY id DESC");
    
$result=$data->result($query,$row,"id");
    for(
$i=1;$i<=$result;$i++){
        
$checkbox $_POST***91;"checkbox_$i"***93;;
        if(
$checkbox==1){
            
$data->query("DELETE FROM delete_all WHERE id='$i'");
        }
    }
    
header("Location: index.html");
}
if(
$act=="update"){
    
$query=$data->query("UPDATE delete_all SET text='$text' WHERE id='$id'");
    
header("Location: index.html");
}

?>
tạo file class.php

PHP Code:
<?php
class db{
    var 
$db_host;
    var 
$db_name;
    var 
$db_user;
    var 
$db_pass;
    function 
db(){
        global 
$data_host,$data_name,$data_user,$data_pass;
        
$this->db_host=$data_host;
        
$this->db_name=$data_name;
        
$this->db_user=$data_user;
        
$this->db_pass=$data_pass;
    }
    function 
connect(){
        
$connect   = @mysql_connect($this->db_host,$this->db_user,$this->db_pass) or die(mysql_error());
        
$select_db = @mysql_select_db($this->db_name,$connect) or die(mysql_error());
    }
    function 
query($input){
        
$query=@mysql_query($input) or die(mysql_error());
        return 
$query;
    }
    function 
fetch_array($query$type=MYSQL_ASSOC) {
        
$n = @mysql_fetch_array($query$type);
        return 
$n;
    }
    function 
result($query$row=0) {
        
$result = @mysql_result($query$row);
        return 
$result;
    }

}


?>
tạo file config.php

PHP Code:
<?php
$data_host 
"localhost";
$data_name "php5";
$data_user "chilinhnet";
$data_pass "chilinh";
?>
tạo file edit.php

PHP Code:
<?php
require ("config.php");
require (
"class.php");
$data = new db(); 
$data->connect();
?>
<?php
    $query 
$data->query("SELECT * FROM delete_all WHERE id='$id'");
    
$n=$data->fetch_array($query);
?>
<FORM METHOD="POST" ACTION="action_update_<?=$id?>.html">
    <INPUT TYPE="add" NAME="text" value="<?=$n***91;"text"***93;?>">&nbsp;<INPUT TYPE="submit" name="submit" value="Update">
</FORM>
<a href="index.html">Index</a>
tạo table sql sau :

Code:
CREATE TABLE `delete_all` (
  `id` int(11) NOT NULL auto_increment,
  `text` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=117 ;
thêm file .htaccess
Code:
# AddDefaultCharset utf-8

RewriteEngine on
RewriteRule ^index.html$ 			unknown.php
RewriteRule ^add.html$ 				add.php
RewriteRule ^action_add.html$ 			action.php?act=add
RewriteRule ^action_delete.html$ 		action.php?act=delete
RewriteRule ^action_update_([0-9]*).html$ 	action.php?act=update&id=$1  
RewriteRule ^([0-9]*).html$ 			edit.php?id=$1 

# RewriteRule ^.*$ index.php [L]
hê hê chịu khó xem code nha
NsT viết 00:49 ngày 10/10/2018
thnx cậu đã reply cách này cũng hay đó mà có thể hơi dài ...
Tớ đã làm được cái đó mà code ngắn lắm , chỉ có hơn 10 lines thôi , work okie rồi
Bây giờ thì tớ muốn nghiên cứu cách làm để chọn được 2 cái check box ở 2 trang khác nhau.
Ví dụ mình chọn 1 item ở trang 1 , sau đó sang trang 2, chọn một item khác và khi submit thì sẽ nhận được 2 cái items đó.

Tớ mới code được cái nghe nhạc chọn bài trong music box , mời các bạn vào test thử xem sao http://tungnguyen.info/?cat=Music
satthuhuydiet viết 00:46 ngày 10/10/2018
ừa cái checkbox thì ngắn thôi, nhưng cái code trên là mình viết thành một module luôn hê hê.
Chọn các checked box ở nhiều trang thì chắc là phải lưu session rồi. và củng như trên sau khi cho vòng lặp for chay tới đâu thì một biến session tương ứng với ID checkbox sẽ được đăng ký $checkbox = $_POST["checkbox_$i"];
hình dung vậy thôi nhưng khi code củng mệt á
NsT viết 00:50 ngày 10/10/2018
ừ đúng rồi , hôm qua hình dung cái play list trong music box , ý tưởng thì có mà bắt tay vào thực hiện khó thật , mà anyway cũng làm xong , giờ để tìm hiểu thêm cái select được nhiều songs ở các trang khác nhau nữa là okie
Bài liên quan
0