aika Posted June 17, 2009 Report Share Posted June 17, 2009 Uzdevums ir apdeitot tabulu kur true/false tiek atainota ar checkboxiem. katrā rindā: <INPUT TYPE=checkbox NAME=hide[$arrays[$keys]] VALUE=1 (CHECKED pēc true)> iečekošanu atsekot īzīpīzī, bet atčekošanu?? Atčekotam elementam arrayā nav rindas :( , tapēc to nevar apstrādāt! while(list($k,$v) = each($hide)) { Kā izdarīt pareizi? Quote Link to comment Share on other sites More sharing options...
marcis Posted June 17, 2009 Report Share Posted June 17, 2009 Vienkārši :) Pēc POST pieprasījuma saņemšanas, visiem ierakstiem iemet false un atčekotajiem true. Un vēl kas - nav jēgas checkboxam value likt 1, ja neko citu tas tāpat nevar nopostēt, datus postē šādi: <input type="checkbox" name="hide[]" value="$arrays[$keys]" /> mysql_query("UPDATE `tabula` SET lauks=0"); mysql_query("UPDATE `tabula` SET lauks=1 WHERE id IN (".implode(",", $_POST['hide']).")"); Quote Link to comment Share on other sites More sharing options...
aika Posted June 17, 2009 Author Report Share Posted June 17, 2009 Vienkārši :)Pēc POST pieprasījuma saņemšanas, visiem ierakstiem iemet false un atčekotajiem true. Un vēl kas - nav jēgas checkboxam value likt 1, ja neko citu tas tāpat nevar nopostēt, datus postē šādi: <input type="checkbox" name="hide[]" value="$arrays[$keys]" /> mysql_query("UPDATE `tabula` SET lauks=0"); mysql_query("UPDATE `tabula` SET lauks=1 WHERE id IN (".implode(",", $_POST['hide']).")"); Bāc, kautkur pa ceļam štukojot, takš šito variantu biju iedomājies, bet pēc tam ... txs un liels txs par WHERE IN, nebiju sastapis šādu sintaksi! Quote Link to comment Share on other sites More sharing options...
aika Posted June 17, 2009 Author Report Share Posted June 17, 2009 Hā! :) Nestrādā, ja ir tikai viens ieraksts, kurš jāatķeksē! :) Nācās pievienot viltus rindiņu: <input TYPE="hidden" name="delete[]" value="1"> Quote Link to comment Share on other sites More sharing options...
aika Posted June 17, 2009 Author Report Share Posted June 17, 2009 UN vēl :( WHERE id IN (".implode(",", $_POST['hide']).")"); nestrādā ja id lauks ir charakteros: UPDATE `table` SET parametrs='1' WHERE id IN (907c8ff2fa75964f668432a275608052,1) Unknown column '907c8ff2fa75964f668432a275608052' in 'where clause' nācās pārrakstīt šādi: IN ('".implode("','", $HTTP_POST_VARS[hide])."') Quote Link to comment Share on other sites More sharing options...
marcis Posted June 18, 2009 Report Share Posted June 18, 2009 Pirms izpildi otro kveriju, pārbaudi vai vispār kaut kas ir nopostēts. Ja tavā gadījumā id var būt arī strings, tad pirms tam apstrādā mainīgos (vispār tas būtu jādara jebkurā gadījumā). if(!empty($_POST['hide']) && is_array($_POST['hide'])){ $update = array(); foreach($_POST['hide'] as $value){ $update[] = sprintf("'%s'", mysql_real_escape_string($value)); } mysql_query("UPDATE `tabula` SET lauks=1 WHERE id IN (".implode(", ", $update).")"); } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.