Jump to content
php.lv forumi

checkbox kas neieķeksēts


aika

Recommended Posts

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?

Link to comment
Share on other sites

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']).")");

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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])."')

Link to comment
Share on other sites

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).")");
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...