CryRat Posted December 5, 2003 Report Share Posted December 5, 2003 situācīja: vairāki Text tipa Input lauki bet tikai dažus ( pēc lietotāja izvēles ) vajag mainīt tādēļ katram pretī ir Checkbox tipa Inputs problēma: diezgan neērti ir ar PHP atlasīt vajadzīgos jautājums: vai ir iespējams to Checkbox piesaistīt pie Text tā lai tikai tie Text tiktu submitoti kuriem Checkbox ir checked ? vai varbūt var kāds piedāvāt ērtāku risinājumu šajai situācījai ? Link to comment Share on other sites More sharing options...
jb4 Posted December 6, 2003 Report Share Posted December 6, 2003 Nevajag lietotājam prasīt kaut ko iečekot. Tas ir sasodīti neloģiski no viņa skatu punkta. Katrā ziņā manam tētim tā forma liktos debila. Tā vietā ļauj darīt lietotājam ko viņš vēlas. Formas apakšā piedāvā podziņu Reset, lai viņš var atsaukt savas muļķīgās izmaiņas, kā arī ierasto Submit podziņu, kas viņu aiznesīs uz apstrādātājskriptu, kurš ņemsies ar visu. PHP skripts fiksi ievāc datus par veco stāvokli (no datu turētāja) un uzzina ko lietotājs vēlas. Ja lietotājs izdarījis kādas izmaiņas (pārbaudes notiek ar if $vecais != $jaunais ), tad šīs izmaiņas arī piefiksējam datu turētājā. Javascript mīļotāji ieteiks Tev čakarēties ar Javascript un nav nemaz tik slikta ideja, tikai, lai ielādētu attiecīgo javascript klienta pusē paies daudz ilgāks laiks nekā paies kamēr tu ar PHP salīdzināsi datus servera pusē. Javascript gadījumā dara to pašu, ko PHP pusē - ar IFiem salīdzina pie Submit nospiešanas vai kas ir mainījies. Ja ir mainījies, tad ieliekam šīs jaunās vērtības hidden lauku vērtībās. Hidden laukiem pēc noklusējuma vērtība būs kaut kāds īpašs strings (tukšs strings neder, jo jaunais stāvoklis kaut kam var arī būt tukšs strings) un servera pusē čekojam vai attiecīgais hidden fields satur norunāto stringu vai arī ko citu. Ja nesatur norunāto (piemēram, $3k$$ ), tad jālabo dati datu turētājā. Link to comment Share on other sites More sharing options...
Venom Posted December 6, 2003 Report Share Posted December 6, 2003 $fields=10; $fieldNames=array('Vārds','Uzvārds','Tārunis'...); if (isset($_POST['values']) && isset($_POST['required'])) { foreach($_POST['values'] as $key=>$value) { //lai nesūta mums kaut ko lieku $key=intval($key); if (!$key) ) continue; //tukšus laukus neapskatīsim if (!trim($value)) continue; //čekojam, vai bija nočekots čekboxis if (!isset($_POST['required'][$key]) or $_POST['required'][$key]!='on') echo 'Uzmanību: Jums bija jāaizpilda lauks <b>'.$fieldNames[$n].'</b><br>'; } } echo '<form method="post" action="index.php">'; for ($n=0;$n<=$fields;$n++) { echo $fieldNames[$n].' <input name="required['.n.']"> <input type="text" name="values['.n.']"><br>'; } echo '</form>'; Link to comment Share on other sites More sharing options...
CryRat Posted December 6, 2003 Author Report Share Posted December 6, 2003 Nevajag lietotājam prasīt kaut ko iečekot. Tas ir sasodīti neloģiski no viņa skatu punkta. Katrā ziņā manam tētim tā forma liktos debila.umm... nav tik vienkārši... lieta tāda ka tos Text var arī dzēst ne tikai labot vai pievienot... ir daudz ērtāk iecheckot vajadzīgos un vienreiz nospiest Dzēst nevis katram ierakstam spiest blakus esošo Dzēst...bet jā... iespējams ka paklausīšu tavam padomam un tos Checkboxus atstāšu tikai priekš dzēšanas vai vispār vērtība "" == Dzēst ...vēl jāpadomā ko un kā paldies bij interesanti :) Venom: vēl neiedziļinājos bet izskatās... savādāk nekā es to būtu rakstījis... thx... Link to comment Share on other sites More sharing options...
Recommended Posts