08. september 2023 - 22:37Der er
10 kommentarer og 1 løsning
checkboxe
Jeg har tre checkbokse i en formular, de hedder valg[] med en tekst Den gamle kode vil ikke rigtig virke, så jeg har lavet en ny, som måske heller ikke er helt rigtig?
if (isset($_POST['valg'])) { foreach($_POST['valg'] as $valg) //Kør igennem array $N = count($valg); $string_valg.= $valg." "; } echo " "; }
Nu er det jo lidt svært at vide, om det er rigtigt, når man ikke ved, hvad resultatet burde være.
Men til en start er der i hvert fald en bøf, at der mangler en åben tuborg efter foreach-sætningen.
Så undrer det mig også lidt, at du laver en echo af et mellemrum efter foreach-løkken. Og jeg forstår heller ikke, hvad du skal bruge $N variablen til.
Måske mente du noget lignende dette: if (isset($_POST['valg'])) { $N = count($_POST['valg']); $string_valg = ""; foreach($_POST['valg'] as $valg) {//Kør igennem array $N = count($valg); $string_valg.= $valg." "; } echo "Følgende blev valgt (".strval($N)." ialt): ".$string_valg; }
Jeg har tre checkboxe hvor man kan sætte kryds i en af dem: <div><label for="valg"> forening1</label><input type="checkbox" name="valg[]" value= "medlem_forening1"></div> <div><label for="valg"> forening 2</label><input type="checkbox" name="valg[]" value= "medlem_iforening 2"></div> <div><label for="valg">Ikke medlem</label><input type="checkbox" name="valg[]" value="medlem_nej"></div> Det er så det, jeg skal bruge en kode til, hvor den gamle fra for mere end 10 år siden ikke virker.mere på nyere versioner af PHPMailer. Den gamle ligner den foreslåede, men hvor der ikke er echo, men en streng i mailprogrammeringen ".$string_valg." Måske er der en smartere mådeat lave det på.
Muligheden for at sætte flueben i checkboxe har du jo i den html-kode, du lige har pasted ind. Hvad er det, der skal ske, når man har sat fluebenene. Og hvordan giver mit tidligere forslag et forkert resultat?
Som jeg forstår det, vil den kode, som jeg sendte dig give en streng-variabel, $string_valg, som indeholder de valgte checkboxes. Så slutter min kode med at udskrive dem, og det er vel næppe, hvad du ønsker, men hvad skal der så ske med dem i stedet?
Resultat fra checkboxene som $string_valg sættes ind i svarmailen i rækken af svarene $Navn, $adresse $postnummer,$by osv som medlem af_forening1 eller medlem af_forening2 eller Medlem_nej afhængig af hvor der er sat flueben.
Den gamle kode ser sådan ud, men virker tilsyneladende kun med den gamle class.PHPMailer eller også er der en anden fejl, som jeg ikke har fundet endnu.
$avalg = (isset($_POST['valg']) ? $_POST['valg'] : ""); if(empty($avalg)){ die ("Venligst marker et af felterne medlem/ikke medlem."); } $N = count($avalg); echo " ";
Der skal lige lidt tålmodighed til. Jeg har lavet en version af formularen uden checkbokse. I den er der en fejl, som jeg lige skal finde først, derefter sætter jeg checkboksene ind og prøver dem af. Indtil nu har jeg kun fået HTML 500 fejl. De er ikke til megen hjælp.
Nu prøvede jeg lige at køre den, hvor jeg indtastede mine egne mail-indstillinger. Der er en enkelt bøf her: <h1>Hej ".$navn". Det sidste punktum skal stå før anførselstegnet: <h1>Hej ".$navn."
Derudover er denne linje også forkert: $mail->$Subject = 'Bestilling'; Der skal stå: $mail->Subject = 'Bestilling';
Tusind tak for det. Jeg havde efter mange forsøg efterhånden stirret mig blind på den kode. Nu er formularen så uden fejl, og den virker. Næste punkt er at putte checkboxene ind igen og se, hvad der sker? Jeg starter med den gamle kode, som er nævnt højere oppe i tråden.
Det viser sig at den gamle kode virker sat ind lige over alle variablerne,så jeg nævner den lige igen: $avalg = (isset($_POST['valg']) ? $_POST['valg'] : ""); if(empty($avalg)){ die ("Venligst marker et af felterne medlem/ikke medlem."); } $N = count($avalg); echo " ";
foreach($avalg as $valg) { $string_valg.= $valg." "; echo " "; } I mailtråden står der så "Medlem: ". $string_valg." Mange tak for hjælpen! Læg et svar, som jeg kan markere som løsning ;-)
Svar kommer her, men i det nuværende "Eksperten" behøver man nu ikke bede om et svar længere. Det burde være sådan, at du kan lukke en tråd, bare ved at markere én af de tidligere kommentarer :-)
Synes godt om
Ny brugerNybegynder
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.