Jump to content
php.lv forumi

Doma par checkbox


ok1

Recommended Posts

Radās doma, ka e-pasta sistēmai noteikti vajadzētu katram meilam checkbox, lai nevajadzētu katru meilu dzēst pa vienam, bet gan varētu dzēst uzreiz vairākus.

Varētu būt variants, ka lietotāja pusē :

<input type="checkbox" name="ch<?=$row['id'];?>">

Un kad visa darbība tiek padota uz php failu, tad tur visu ar while funkciju. Njemam katru id un pārbaudam, vai ir ieķeksēts šāds id vai nav :

<?php 
$q = mysql_query("SELECT id from messages");
while($d = mysql_fetch_array($q)){
if($_POST['ch$d[id]'] == "1"){
$cheboxis = "on";
}
}
?>

Bet šādi netiek taupīti resursi, vēl var padot atvērto lapu, bet daudz jau neko nedos. Es esmu pārliecināts, ka ir kāds labāks, taupīgāks variants. Iesakiet to man.

Edited by ok1
Link to comment
Share on other sites

Dari šādi:

<input type="checkbox" name="checked[]" value="MSG_ID1" />
<input type="checkbox" name="checked[]" value="MSG_ID2" />
<input type="checkbox" name="checked[]" value="MSG_ID3" />

 

Pēc tam no php puses tu vari izmanto $_POST['checked'] masīvu, kur būs visi sačeksēto vēstuļu ID.

 

protams, MSG_IDX vietā vēstuļu id :)

Edited by andrisp
Link to comment
Share on other sites

A tam

<input type="checkbox" name="checked[]" value="MSG_ID3" />

ir jābūt tieši tādam? Tas nevar būt:

<input type="checkbox" name="checked" value="MSG_ID3" />

Jo neizdodas piesaistīt javascript funkciju lai visus pataisītu "checked=true". Varbūt nepareizi taisu javascript?

<script>
function checkAll() {
for (var j = 1; j <= 14; j++) {
box = document.emails.checked[]; 
if (box.checked == false) box.checked = true;
  }
}
</script>

Edited by ok1
Link to comment
Share on other sites

Jā.. savādāk netiks izveidots masīvs ar vērtībām. Protams, var jau vēl darīt kā tu darīji:

...name="ch3"..
...name="ch12"..
...name="ch13"..

 

Un pēc tam:

$checked_msgs = array();

foreach($_POST as $key => $val) {
if (preg_match('/ch[0-9]+/i', $key)) {
	$checked_msgs[] = $val;
}
}

 

Bet domāju šis būs lēnāks variants.

 

UPD: Es taisītu apt. šādu JS:

<script>
function checkAll() {

var inputs = document.getElementsByTagName('input');

for (var i = 1; i <= inputs.length; i++) {

	if (inputs[i].getAttribute('name') == 'checked[]') {

		inputs[i].checked = true;

	}

  }

}
</script>

 

100% nezinu vai strādā, nepārbaudīju.

Edited by andrisp
Link to comment
Share on other sites

×
×
  • Create New...