Oprettet fre. d. 10. februar 2012 kl. 12:47:44

Asky
Asky (820 point. Point ude: 0)

Elementært?

Dette er vist elementært, men den vil ikke fortælle når feltet er tomt.

Vare 1: <input type='text' name='vare_1' value='' size='20'>
<?
if (empty($_POST['vare_1'])) {
$string_v1= "";
echo "Vare et er tom";}
else { $string_v1 ="Vare_1".($_POST['vare_1']);
echo "Vare 1 er ikke tom men ". $string_v1;
}
?>
jeg vil så hente  $string_v1 til email, men hvis den er tom, skal
der ikke stå noget.

Skrevet fre. d. 10. februar 2012 kl. 12:53:49| #1

The_Buzz
The_Buzz (13.155 point)
www.modified.dk
Prøv

if (empty($_POST['vare_1']) or $_POST['vare_1'] == '' or (!isset($_POST['vare_1']))) {

Skrevet fre. d. 10. februar 2012 kl. 13:42:31| #2

Asky
Asky (820 point)
Ja, så virker det :-)
Kan kodestumpen "udvikles", så den fylder så lidt, som muligt?

Skrevet fre. d. 10. februar 2012 kl. 13:48:32| #3

The_Buzz
The_Buzz (13.155 point)
www.modified.dk
if (empty($_POST['vare_1'])
  or $_POST['vare_1'] == ''
  or (!isset($_POST['vare_1']))) {

Jeg syns nu din kode fylder lidt.. Ellers skulle du se nogle af de andre programmer jeg har lavet - jeg er freelance php programmør : www.modified.dk

Skrevet fre. d. 10. februar 2012 kl. 14:24:59| #4

olebole
olebole (214.613 point)
<ole>

Dette burde vel være nok:

if (!isset($_POST['vare_1']) || $_POST['vare_1']=='') {

/mvh
</bole>

Skrevet fre. d. 10. februar 2012 kl. 16:30:55| #5

Asky
Asky (820 point)
Det er det. Og den skriver endda på skærmen, at feltet er tomt, inden der foretages indput;-) Når man så skriver noget i feltet, kommer den anden tekst, når der er trykket på submit.
Nu betyder det egentlig ikke noget, da jeg kun tog echoerne med, for at følge med i, om der skete noget. Koden til vare_1, ser nu således ud:
<?
if (!isset($_POST['vare_1']) || $_POST['vare_1']=='') {
$string_v1= "";
}
else {$string_v1 ="Vare_1".($_POST['vare_1']);
}
?>
Måske kan man nøjes med at kalde stregen "$v1" i stedet for "$string_v1" ?

Skrevet fre. d. 10. februar 2012 kl. 18:26:05| #6

olebole
olebole (214.613 point)
Jeg ville nok skrive sådan:

<?php
if (!empty($_POST)) {
    if (!isset($_POST['vare_1']) || $_POST['vare_1']=='') {
        $v1= "";
    }
    else {
        $v1 = "Vare_1".($_POST['vare_1']);
    }
}
?>

Det giver en anelse mere kode, men der udløses ingen fejl eller advarsler, som ellers vil ske, hvis PHP er sat fornuftigt op - og formen endnu ikke er submittet. I den forbindelse hjælper det ikke at spørge på empty($_POST['vare_1']).

Skrevet fre. d. 10. februar 2012 kl. 18:28:02| #7

olebole
olebole (214.613 point)
Næhh ... det ville jeg nu nok ikke. Jeg ville skrive det sådan:

<?php
$v1= "";
if (!empty($_POST)) {
    if (isset($_POST['vare_1']) && $_POST['vare_1']!='') {
        $v1 = "Vare_1".($_POST['vare_1']);
    }
}
?>

Skrevet fre. d. 10. februar 2012 kl. 21:29:09| #8

Asky
Asky (820 point)
Havde lidt bøvl med at få det til at virke, men det skulle selvføgelig ind under den har, der hedder

if(isset($_POST['send'])) {


Hvis man nu har 20 eller flere varer, ville det være interessant at lave en fælles kode. Fx sætte "varerne_" i et fælles array? så betingelsen gælder alle ?

Skrevet fre. d. 10. februar 2012 kl. 22:23:33| #9

olebole
olebole (214.613 point)
Så bør det se sådan ud:

<?php
$v1= "";
if (!empty($_POST)) {
    if (isset($_POST['send'])) {
        if (isset($_POST['vare_1']) && $_POST['vare_1']!='') {
            $v1 = "Vare_1".($_POST['vare_1']);
        }
    }
}
?>

Men det med flere varer kommer anpå, hvordan din markupkode ser ud

Skrevet søn. d. 12. februar 2012 kl. 17:36:16| #10

Asky
Asky (820 point)
Nu har jeg brugt koden til 60 indputfelter og det virker perfekt:-)
Jeg lukker denne tråd

Skrevet søn. d. 12. februar 2012 kl. 18:50:12| #11

olebole
olebole (214.613 point)
Njaahhh ... det gør du nu først, når et svar er accepteret  =)

Skrevet man. d. 19. marts 2012 kl. 08:46:13| #12

Asky
Asky (820 point)
tak for hjælpen. Nu har jeg omskrevet hele koden på 13 formularer, der alle virker fint. hvis bare folk(kunderne) vil huske at opdatere deres browsere!

Skrevet man. d. 19. marts 2012 kl. 12:13:21| #13

olebole
olebole (214.613 point)
Selvtak ... men du skal stadig huske at trykke på 'Accepter', før tråden lukkes  *o)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger