Jump to content
php.lv forumi

Input Checkbox un Input Text saistīšana


CryRat

Recommended Posts

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

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

$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

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

×
×
  • Create New...