Autor | Zpráva | ||
---|---|---|---|
radas Profil * |
Zdarvím,
potřeboval jsem nějaky js pro hromadné vybirani chceckboxu. nakonec jsem našel, ale ma to haček js function markAllRows( container_id ) { var rows = document.getElementById(container_id).getElementsByTagName('input'); var checkbox; for ( var i = 0; i < rows.length; i++ ) { checkbox = rows[i]; if (checkbox.type == 'checkbox' ) { checkbox.checked = !checkbox.checked; } } return true; } muj formulař <form id="check" action="nezarazene.php" method="post"> <input type="checkbox" name="kat_id[]" value="1" /> kategorie <input type="checkbox" name="id[]" value="1" /> id produktu <input type="checkbox" name="id_delete[]" value="1" /> smazat a ja bych potřeboval že když zmačknu vybrat všchny <input name="id[]" value="" type="checkbox" onclick="markAllRows('check');" />vybrat všechny produkty tak aby se mi jen označily checkboxy s nazvem id[] myslel jsem že bude stačit function markAllRows( container_id ) { var rows = document.getElementById(container_id).getElementsByTagName('input'); var checkbox; for ( var i = 0; i < rows.length; i++ ) { checkbox = rows[i]; if (checkbox.type == 'checkbox' and checkbox.name== 'id' ) { checkbox.checked = !checkbox.checked; } } return true; } bohužel to nefunguje... Moderátor Chamurappi: Opravil jsem rozlezlou kurzívu.
|
||
Tomashek Profil |
#2 · Zasláno: 18. 7. 2009, 11:23:17
V javascriptu se používá místo AND - &&
function markAllRows( container_id ) { var rows = document.getElementById(container_id).getElementsByName('id'); //zkus změnit z TagNamu na Name var checkbox; for ( var i = 0; i < rows.length; i++ ) { checkbox = rows; if (checkbox.type == 'checkbox' ) { checkbox.checked = !checkbox.checked; } } return true; } |
||
radas Profil * |
#3 · Zasláno: 18. 7. 2009, 12:03:08
nepomohlo..s tím and jsem to našel...ale dík za info...
|
||
Tomashek Profil |
#4 · Zasláno: 18. 7. 2009, 12:45:35
function markAllRows(container_id) { var rows,checkbox; rows = document.getElementById(container_id).elements['id[]']; for(x = 0;x<rows.length;x++) { checkbox = rows[x]; if(checkbox.type=='checkbox'){checkbox.checked = !checkbox.checked;} } return true; } Tohle mi funguje |
||
radas Profil * |
#5 · Zasláno: 18. 7. 2009, 12:54:31
děkuji mi taky...
|
||
Časová prodleva: 5 měsíců
|
|||
matlala Profil |
#6 · Zasláno: 3. 12. 2009, 14:49:36 · Upravil/a: matlala
ahoj,
narazil jsem na tuhle diskusi, ať mi nikdo neříká, že to s tím nesouvisí, ale je tu malej problém, potřebuju ho vyřešit. Zkusil jsem script a funguje dobře, ale pouze v IE, mozilla, opera atd nejde. Ovšem koukal jsem na scripty phpMyAdmina a tam to je skoro to samé, ovšem funguje to ve všech prohlížečích, při pokusu o zkopírování to nejde, zase pouze IE. Můžete mi někdo poradit jak ten script zprovoznit? Sám se snažím už 2 hodiny a zatím bez úspěchu. |
||
matlala Profil |
#7 · Zasláno: 3. 12. 2009, 18:12:39
aha hurá tak se mi to podařilo vytáhnout, už to jede, ale musí být v tabulce. Kdyby se to někomu hodilo, tak tohle pojede i v mozille, pracně vytaženo z phpMyAdmin, který funguje ve všech prohlížečích. Možná to jde ještě zkrátit, ale když se JS hodí to vnějšího souboru je to snadno použitelné, hlavní je funkce PMA_markRowsInit():
<script type="text/javascript"> var marked_row = new Array; /** * enables highlight and marking of rows in data tables * */ function PMA_markRowsInit() { // for every table row ... var rows = document.getElementsByTagName('tr'); for ( var i = 0; i < rows.length; i++ ) { // ... with the class 'odd' or 'even' ... if ( 'odd' != rows[i].className.substr(0,3) && 'even' != rows[i].className.substr(0,4) ) { continue; } // ... add event listeners ... // ... to highlight the row on mouseover ... if ( navigator.appName == 'Microsoft Internet Explorer' ) { // but only for IE, other browsers are handled by :hover in css rows[i].onmouseover = function() { this.className += ' hover'; } rows[i].onmouseout = function() { this.className = this.className.replace( ' hover', '' ); } } // Do not set click events if not wanted if (rows[i].className.search(/noclick/) != -1) { continue; } // ... and to mark the row on click ... rows[i].onmousedown = function() { var unique_id; var checkbox; checkbox = this.getElementsByTagName( 'input' )[0]; if ( checkbox && checkbox.type == 'checkbox' ) { unique_id = checkbox.name + checkbox.value; } else if ( this.id.length > 0 ) { unique_id = this.id; } else { return; } if ( typeof(marked_row[unique_id]) == 'undefined' || !marked_row[unique_id] ) { marked_row[unique_id] = true; } else { marked_row[unique_id] = false; } if ( marked_row[unique_id] ) { this.className += ' marked'; } else { this.className = this.className.replace(' marked', ''); } if ( checkbox && checkbox.disabled == false ) { checkbox.checked = marked_row[unique_id]; } } // ... and disable label ... var labeltag = rows[i].getElementsByTagName('label')[0]; if ( labeltag ) { labeltag.onclick = function() { return false; } } // .. and checkbox clicks var checkbox = rows[i].getElementsByTagName('input')[0]; if ( checkbox ) { checkbox.onclick = function() { // opera does not recognize return false; this.checked = ! this.checked; } } } } window.onload=PMA_markRowsInit; /** * marks all rows and selects its first checkbox inside the given element * the given element is usaly a table or a div containing the table or tables * * @param container DOM element */ function markAllRows( container_id ) { var rows = document.getElementById(container_id).getElementsByTagName('tr'); var unique_id; var checkbox; for ( var i = 0; i < rows.length; i++ ) { checkbox = rows[i].getElementsByTagName( 'input' )[0]; if ( checkbox && checkbox.type == 'checkbox' ) { unique_id = checkbox.name + checkbox.value; if ( checkbox.disabled == false ) { checkbox.checked = true; if ( typeof(marked_row[unique_id]) == 'undefined' || !marked_row[unique_id] ) { rows[i].className += ' marked'; marked_row[unique_id] = true; } } } } return true; } /** * marks all rows and selects its first checkbox inside the given element * the given element is usaly a table or a div containing the table or tables * * @param container DOM element */ function unMarkAllRows( container_id ) { var rows = document.getElementById(container_id).getElementsByTagName('tr'); var unique_id; var checkbox; for ( var i = 0; i < rows.length; i++ ) { checkbox = rows[i].getElementsByTagName( 'input' )[0]; if ( checkbox && checkbox.type == 'checkbox' ) { unique_id = checkbox.name + checkbox.value; checkbox.checked = false; rows[i].className = rows[i].className.replace(' marked', ''); marked_row[unique_id] = false; } } return true; } </script> <form method="post" action="rows.php" name="soubory" id="souboryvyber"> <table> <tr><td> <input type="checkbox" name="polozka[]"> </td></tr> <tr><td> <input type="checkbox" name="polozka[]"> </td></tr> <tr><td> <input type="checkbox" name="polozka[]"> </td></tr> <tr><td> <input type="checkbox" name="polozka[]"> </td></tr> <tr><td> <input type="checkbox" name="polozka[]"> </td></tr> </table> <a href="#" onclick="if (markAllRows('souboryvyber')) return false;">Zaškrtnout vše</a> <!--místo href="#" doporučuju dát odkaz na ošetřenou verzi, kvůli nefunknosti při vypnutím JS nebo taky možná v mobilu. markAllRows('id_formuláře')--> / <a href="#" onclick="if (unMarkAllRows('souboryvyber')) return false;">Odškrtnout vše</a> </form> |
||
Časová prodleva: 14 let
|
0