22. april 2003 - 16:22
Der er
30 kommentarer og 1 løsning
Validering af select box
Jeg er newbie og har brug for hjælp til validering af en select box. (Det er en meget primitiv form for validering jeg laver, men ønsker pt. ikke at gøre mere ud af det.) Et normalt input felt valider jeg således: if ( ($vat) && .......... bla bla bla derud af ) { VAT no.:<? if (!$vat) { echo "<span class=\"red\">*</span>" ; } ?> <input type="text" name="vat" value="<? echo $vat; ?>"> Hvordan bygger jeg det så op i en select ?? Type of business: <select name="business" size="1"> <option value=" ">Please choose -></option> <option value="Wholesaler">Wholesaler</option> <option value="Retail dealer">Retail dealer</option> <option value="Other">Other</option> </select>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
22. april 2003 - 16:25
#1
if($business == Wholesaler){ bla bla bla.... Eller hvad mener du?
22. april 2003 - 16:25
#2
hov: if($business == "Wholesaler"){ bla bla bla....
22. april 2003 - 16:33
#3
Sorry, men du er nærmest nødt til at tegne og fortælle og lave selecten for mig.
22. april 2003 - 16:37
#4
Du har din select, som du selc har konstrueret: <select name="business" size="1"> <option>Please choose -></option> <option value="Wholesaler">Wholesaler</option> <option value="Retail dealer">Retail dealer</option> <option value="Other">Other</option> </select> Hvis du så via PHP vil tjekke om man f.eks. har valgt Wholesaler, så gør du det på denne måde: <?php if($_POST['business'] == "Wholesaler"){ //Denne linie ser efter om ens valg er lig med Wholesaler, ellers fortsætter den bare. Hvis du så vil teste om en anden er sat fortsætter du bare: elseif($_POST['business'] == "Retail dealer"){ Skal du blot tjekke om man overhovedet har valgt noget gør du det med: if($_POST['business']){ Er det dette du er ude efter eller...?
22. april 2003 - 16:39
#5
Jeg kan evt. kontaktes på: MSN: alexander_hv@hotmail.com ICQ: 82550004
22. april 2003 - 16:40
#6
$checkbox = $_POST['business']; switch ( $checkbox ) { case ' ': // NOTHING SELECTED! break; case 'Wholesaler': // DO STUFF break; case 'Retail dealer': // DO STUFF break; case 'Other': // DO STUFF break; default: // DO STUFF break; }
22. april 2003 - 16:40
#7
Tja, nu fatter jeg ikke så meget. Men formålet er bare at validere om der er lavet et valg -altså ikke så meget hvilket, men bare om der er valgt, og så skal selecten "huske" valget når man submitter til PHP_SELF sådan at boxen ikke er nulstillet.
22. april 2003 - 16:43
#8
For at få den til at huske, laver du blot: <select name="business" size="1"> <?php if($_POST['business']){ ?> <option value="<?php echo $_POST['business']; ?>"><?php echo $_POST['business']; ?></option> <?php }else{ ?> <option>Please choose -></option> <?php } ?> <option value="Wholesaler">Wholesaler</option> <option value="Retail dealer">Retail dealer</option> <option value="Other">Other</option> </select>
22. april 2003 - 16:45
#9
så lav din select om hvis du bare skal validerer: <select name="business" size="1"> <option value="0">Please choose -></option> <option value="1">Wholesaler</option> <option value="1">Retail dealer</option> <option value="1">Other</option> </select> når den sendes, tjekkes som følger: if ( $_POST['buisness'] ) { // OK! - Der er valgt noget } else { // Der er ikke valgt noget }
22. april 2003 - 16:47
#10
Når du blot bare skal have den til at vælge det du vælger igen, kan min gøres lidt flottere med: (bare et eksempel) <form action="test.php" method="post"> <select name="business" size="1"> <option>Please choose -></option> <option value="Wholesaler" <?php if($_POST[business] == "Wholesaler"){ echo "selected";} ?>>Wholesaler</option> <option value="Retail dealer" <?php if($_POST[business] == "Retail dealer"){ echo "selected";} ?>>Retail dealer</option> <option value="Other" <?php if($_POST[business] == "Other"){ echo "selected";} ?>>Other</option> </select> <input type="submit" value="Send"> </form>
22. april 2003 - 16:56
#12
Prøver lige
22. april 2003 - 17:01
#13
OK, det sidste ahv har postet virker fint! Den husker det som er valgt. Nu mangler jeg bare at der skal valideres sådan at man SKAL foretage et valg. Selecten er del af en længere formular hvor scriptet starter sådan: if ( ($company) && ($vat) && ($person) && ($address) && ($postal) && ($city) && ($country) && ($phone) && ($mail) ) { Jeg skal altså på en eller anden måde have selecten med i valideringen og det er lidt kryptisk for mig.
22. april 2003 - 17:02
#14
Som sagt valideres normale inputes sådan: VAT no.:<? if (!$vat) { echo "<span class=\"red\">*</span>" ; } ?> <input type="text" name="vat" value="<? echo $vat; ?>">
22. april 2003 - 17:04
#15
if($company && $vat && $person && $address && $postal && $city && $country && $phone && $mail && $business)
22. april 2003 - 17:07
#16
Jeg er med på at variablen business skal med i if sætningen, men hvordan ser koden ud i selve selecten?
22. april 2003 - 17:10
#17
Hvordan koden ser ud?
22. april 2003 - 17:15
#18
Here goes: <table border="0" cellspacing="0" cellpadding="3" align="center"> <form name="process" action="<? echo $PHP_SELF ; ?>" method="post"> <tr> <td>Company:<? if (!$company) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="company" class="field" style="width: 220px" value="<? echo $company; ?>"></td> </tr> <tr> <td>VAT no. (Org.nr.):<? if (!$vat) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="vat" class="field" style="width: 220px" value="<? echo $vat; ?>"></td> </tr> <tr> <td>Type of business:</td> <td> <select name="business" size="1" class="field" style="width: 220px"> <option>Please choose -></option> <option value="Wholesaler" <?php if($_POST[business] == "Wholesaler"){ echo "selected";} ?>>Wholesaler</option> <option value="Retail dealer" <?php if($_POST[business] == "Retail dealer"){ echo "selected";} ?>>Retail dealer</option> <option value="Other" <?php if($_POST[business] == "Other"){ echo "selected";} ?>>Other</option> </select> <!-- oprindelig select <select name="business" size="1" class="field" style="width: 220px"> <option value=" ">Please choose -></option> <option value="Wholesaler">Wholesaler</option> <option value="Retail dealer">Retail dealer</option> <option value="Other">Other (note: we only sell B2B)</option> </select> --> </td> </tr> <tr> <td>Contact person:<? if (!$person) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="person" class="field" style="width: 220px" value="<? echo $person; ?>"></td> </tr> <tr> <td>Address:<? if (!$address) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="address" class="field" style="width: 220px" value="<? echo $address; ?>"></td> </tr> <tr> <td>Postal code:<? if (!$postal) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="postal" class="field" style="width: 220px" value="<? echo $postal; ?>"></td> </tr> <tr> <td>City:<? if (!$city) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="city" class="field" style="width: 220px" value="<? echo $city; ?>"></td> </tr> <tr> <td>Country:<? if (!$country) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="country" value="Sweden" class="field" style="width: 220px" value="<? echo $country; ?>"></td> </tr> <tr> <td>Phone:<? if (!$phone) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="phone" class="field" style="width: 220px" value="<? echo $phone; ?>"></td> </tr> <tr> <td>Fax:</td> <td><input type="text" name="fax" class="field" style="width: 220px" value="<? echo $fax; ?>"></td> </tr> <tr> <td>E-mail:<? if (!$mail) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="mail" class="field" style="width: 220px" value="<? echo $mail; ?>"></td> </tr> <tr> <td> </td> <td align="right"><input type="submit" name="submit" value="= Submit order =" class="button"></td> </tr> </form> </table>
22. april 2003 - 17:17
#19
Ups, ja og over dette er der selvfølgelig en del som sender formularen videre i en HTML mail, men det er knapt så vigtigt for det virker. Det starter med: if ( ($company) && ($vat) && ($business) && ($person) && ($address) && ($postal) && ($city) && ($country) && ($phone) && ($mail) ) {
22. april 2003 - 17:23
#20
Yes... Hvad er det så du ønsker hjælp til?
22. april 2003 - 17:26
#21
Øh, det har jeg vist forsøgt at beskrive et par gange nu, men any way: select boxen som vi har leget lidt med skal med ind i valideringen således at man SKAL foretage et valg. Det er ikke vigtigt hvad man vælger. Det skal bare være super simpelt sådan at man skal vælge noget andet end "Please choose ->"
22. april 2003 - 17:29
#22
Det synes jeg at jeg har prøvet på med: <select name="business" size="1" class="field" style="width: 220px"> <option>Please choose -></option> <option value="Wholesaler" <?php if($_POST[business] == "Wholesaler"){ echo "selected";} ?>>Wholesaler</option> <option value="Retail dealer" <?php if($_POST[business] == "Retail dealer"){ echo "selected";} ?>>Retail dealer</option> <option value="Other" <?php if($_POST[business] == "Other"){ echo "selected";} ?>>Other</option> </select> Please choose skal bare ikke have noget value? Så skal man foretage et valg og du tjekker jo om det er sat med den: if ( ($company) && ($vat) && ($business) && ($person) && ($address) && ($postal) && ($city) && ($country) && ($phone) && ($mail) ) { Derfor jeg bliver forvirret, ved ikke helt hvad det er du mener hvis ikke det er dette du søger.
22. april 2003 - 17:37
#23
Ok, men bær over med mig da jeg er ekstrem newbie. Jeg mangler selve det med den røde stjerne i selecten lige som der er i de andre inputs.
22. april 2003 - 17:39
#24
aah, ok: Type of business: <? if (!$business) { echo "<span class=\"red\">*</span>" ; } ?> <select name="business" size="1" class="field" style="width: 220px"> <option>Please choose -></option> <option value="Wholesaler" <?php if($_POST[business] == "Wholesaler"){ echo "selected";} ?>>Wholesaler</option> <option value="Retail dealer" <?php if($_POST[business] == "Retail dealer"){ echo "selected";} ?>>Retail dealer</option> <option value="Other" <?php if($_POST[business] == "Other"){ echo "selected";} ?>>Other</option> </select>
22. april 2003 - 18:23
#25
Det er tæt på, men der er noget som ikke helt flasker sig. Hvis man løber formularen igennem og prøver at submitte allerede efter første input, så forsvinder stjernen fra selecten som om at man har valgt noget der, selvom "Please choose->" stadigvæk står der.
22. april 2003 - 18:58
#26
Type of business: <? if (!$_POST['business']) { echo "<span class=\"red\">*</span>" ; } ?> <select name="business" size="1" class="field" style="width: 220px"> <option>Please choose -></option> <option value="Wholesaler" <?php if($_POST[business] == "Wholesaler"){ echo "selected";} ?>>Wholesaler</option> <option value="Retail dealer" <?php if($_POST[business] == "Retail dealer"){ echo "selected";} ?>>Retail dealer</option> <option value="Other" <?php if($_POST[business] == "Other"){ echo "selected";} ?>>Other</option> </select>
22. april 2003 - 19:32
#27
Nope, der sker stadigvæk det at den røde stjerne forsvinder når man prøver at submitte, som om feltet er i orden.
22. april 2003 - 19:45
#28
<table border="0" cellspacing="0" cellpadding="3" align="center"> <form name="process" action="<? echo $PHP_SELF ; ?>" method="post"> <tr> <td>Company:<? if (!$company) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="company" class="field" style="width: 220px" value="<? echo $company; ?>"></td> </tr> <tr> <td>VAT no. (Org.nr.):<? if (!$vat) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="vat" class="field" style="width: 220px" value="<? echo $vat; ?>"></td> </tr> <tr> <td>Type of business:</td> <td> <? if (!$business) { echo "<span class=\"red\">*</span>" ; } ?> <select name="business" size="1" class="field" style="width: 220px"> <option>Please choose -></option> <option value="Wholesaler" <?php if($_POST[business] == "Wholesaler"){ echo "selected";} ?>>Wholesaler</option> <option value="Retail dealer" <?php if($_POST[business] == "Retail dealer"){ echo "selected";} ?>>Retail dealer</option> <option value="Other" <?php if($_POST[business] == "Other"){ echo "selected";} ?>>Other</option> </select> </td> </tr> <tr> <td>Contact person:<? if (!$person) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="person" class="field" style="width: 220px" value="<? echo $person; ?>"></td> </tr> <tr> <td>Address:<? if (!$address) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="address" class="field" style="width: 220px" value="<? echo $address; ?>"></td> </tr> <tr> <td>Postal code:<? if (!$postal) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="postal" class="field" style="width: 220px" value="<? echo $postal; ?>"></td> </tr> <tr> <td>City:<? if (!$city) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="city" class="field" style="width: 220px" value="<? echo $city; ?>"></td> </tr> <tr> <td>Country:<? if (!$country) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="country" value="Sweden" class="field" style="width: 220px" value="<? echo $country; ?>"></td> </tr> <tr> <td>Phone:<? if (!$phone) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="phone" class="field" style="width: 220px" value="<? echo $phone; ?>"></td> </tr> <tr> <td>Fax:</td> <td><input type="text" name="fax" class="field" style="width: 220px" value="<? echo $fax; ?>"></td> </tr> <tr> <td>E-mail:<? if (!$mail) { echo "<span class=\"red\">*</span>" ; } ?></td> <td><input type="text" name="mail" class="field" style="width: 220px" value="<? echo $mail; ?>"></td> </tr> <tr> <td> </td> <td align="right"><input type="submit" name="submit" value="= Submit order =" class="button"></td> </tr> </form> </table>
22. april 2003 - 22:56
#29
Det lader sig ikke gøre åbenbart. Hvis jeg bare skriver 1 bogstav i første input felt og klikker submit, så forsvinder den røde stjerne fra select boxen som om den er udfyldt.
22. april 2003 - 23:13
#30
Jeg laver det med Javascript. Tak for hjælpen.
22. april 2003 - 23:20
#31
dannyboy -> Har fundet en løsning, den vil åbenbart have en value, men den skal blot sættes til ingenting og ikke et mellemrum som du lavede i starten, så: if(!$_POST['business']){ echo "<span class=\"red\">*</span>" ; } ?> <select name="business" class="field" style="width: 220px"> <option value="">Please choose</option> <option value="Wholesaler">Wholesaler</option> <option value="Retail dealer">Retail dealer</option> <option value="Other">Other</option> </select>
Vi tilbyder markedets bedste kurser inden for webudvikling