Avatar billede Asky Forsker
10. februar 2012 - 12:47 Der er 12 kommentarer og
1 løsning

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.
Avatar billede The_Buzz Novice
10. februar 2012 - 12:53 #1
Prøv

if (empty($_POST['vare_1']) or $_POST['vare_1'] == '' or (!isset($_POST['vare_1']))) {
Avatar billede Asky Forsker
10. februar 2012 - 13:42 #2
Ja, så virker det :-)
Kan kodestumpen "udvikles", så den fylder så lidt, som muligt?
Avatar billede The_Buzz Novice
10. februar 2012 - 13:48 #3
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
Avatar billede olebole Juniormester
10. februar 2012 - 14:24 #4
<ole>

Dette burde vel være nok:

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

/mvh
</bole>
Avatar billede Asky Forsker
10. februar 2012 - 16:30 #5
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" ?
Avatar billede olebole Juniormester
10. februar 2012 - 18:26 #6
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']).
Avatar billede olebole Juniormester
10. februar 2012 - 18:28 #7
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']);
    }
}
?>
Avatar billede Asky Forsker
10. februar 2012 - 21:29 #8
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 ?
Avatar billede olebole Juniormester
10. februar 2012 - 22:23 #9
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
Avatar billede Asky Forsker
12. februar 2012 - 17:36 #10
Nu har jeg brugt koden til 60 indputfelter og det virker perfekt:-)
Jeg lukker denne tråd
Avatar billede olebole Juniormester
12. februar 2012 - 18:50 #11
Njaahhh ... det gør du nu først, når et svar er accepteret  =)
Avatar billede Asky Forsker
19. marts 2012 - 08:46 #12
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!
Avatar billede olebole Juniormester
19. marts 2012 - 12:13 #13
Selvtak ... men du skal stadig huske at trykke på 'Accepter', før tråden lukkes  *o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester