Jump to content
php.lv forumi

check all checkboxes nestrādā


Copy

Recommended Posts

Sveiki! Lieta tāda, ka taisu vēstuļu sistēmu uz PHP. Lai izdzēstu vēstules izmantoju checkbox iespēju, kur ar vienas pogas palīdzību "Atzīmēt visas!" tiek atķeksēti visi checkboxi un tad ar submit pogu tālāk padots uz mysql vaicājumu, kas savukārt visas ieķesētās vēstules izdzēš pēc vēstuļu ID. Tik tālu man viss iet un ir kārtībā. Problēma ir ar "Atķesēt visu!" javascript pogu. Tad nu sekojoši kodi:

Šis ir koda gabaliņš, kas liekas iekš <head> tagiem.

<script LANGUAGE="JavaScript">
function Check(chk)
{
if(document.myform.Check_All.value=="Atzīmēt visas"){
for (i = 0; i < chk.length; i++)
chk[i].checked = true;
document.myform.Check_All.value="Atcelt visas";
}else{
for (i = 0; i < chk.length; i++)
chk[i].checked = false;
document.myform.Check_All.value="Atzīmēt visas";
}
}
</script>

 

Šeit checkbox pogas.

<form name="myform" action="del.php" method="post">
<input type="checkbox" name="check_list[]" value="$row[id]"> #$row[id] ir vēstules ID.
<input type="button" name="Check_All" value="Atzīmēt visas" onClick="Check(document.myform.check_list)"> #Šī ir poga, kas ieķesē visu.
<input type="submit" NAME="dzest" VALUE="Dzēst atzīmētās!"> #Šī poga padod POST tālāk.
</form>

 

Šeit vaicājums.

$ids = implode(',', $_POST["check_list"]); 
$sql = "DELETE FROM email where id IN ($ids)";

 

Tad nu ar šo kodu, ir sekojoši: ja es tās vēstules (teiksim ir 5) atķesēju manuāli katru atsevišķi, tad viss notiek, tiek padots post un attiecīgi atķesētās vēstules izdzēšas, bet "Atzīmēt visas!" poga nestrādā. Ja es nodzēšu kvadrātiekavas [] no šejienes name="check_list", tad poga "Atzīmēt visas!" strādā nevainojami, tiek atķesēti visi ieraksti, bet tad savukārt nestrādā vairs mysql vaicājums, kurš savukārt izmet error: function.implode not right syntax ...

 

Kāds varētu man palīdzēt ar šo problēmu, kā lai liek visam ieķeksēties un likt izdzēst bez problēmām. Saprotu ka [] iekavām ir jābūt, jo tiek veidots masīvs, ja nebūs [], tad jams visas nevarēs dzēst.

Edited by Copy
Link to comment
Share on other sites

Paņēmu no viena esoša:

Check all:

<input id="pasts_ch" name="check_all" onclick="pasts_ch_all('pasts_ch','del_msg[]');" type="checkbox">

 

Formās:

<input name="del_msg[]" type="checkbox">

 

un js:

function pasts_ch_all(self,elem){

var status = document.getElementById(self).checked;

var elems = document.getElementsByName(elem);

for (var i=0, count=elems.length; i<count; ++i) {

elems.checked = status;

}

}

Link to comment
Share on other sites

Man slinkums pētīt to, ko tu esi sarakstījis, bet es būtu visiem tiem čekbokšiem iedevis kaut kādu klases nosaukumu un pēc tam 1) ja izmantotu kādu JS librariju, tad ar tās palīdzību izskrietu cauri visiem tās klases elementiem un atzīmētu (piem., jquery - $('bla').attr('checked', 'checked'); ) 2) izmantotu http://www.robertnyman.com/2005/11/07/the-...ntsbyclassname/ funkciju.

Link to comment
Share on other sites

×
×
  • Create New...