Gegevens terug in form van checkboxen en dropdown-list
Dat lukt prima.
Mijn checkboxen en dropdown-list krijg ik niet terug gekoppeld.
Is meer of dit mogelijk is, dan dat ik het perse moet toepassen.
Bedankt vast voor het meedenken..
De gewone values krijg ik als volgt terug:
De code voor de checkboxen:
Code (php)
1
2
2
<input class="single-checkbox" type="checkbox" name="Werk[]" value="Zang">Zang
<input class="single-checkbox" type="checkbox" name="Werk[]" value="Geluid">Geluid
<input class="single-checkbox" type="checkbox" name="Werk[]" value="Geluid">Geluid
De code van het dropdown-menu (nog geen php beschikbaar):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<select name="country_code" />
<option value="NL">NL</option>
<option value="BE">BE</option>
<option value="DU">DU</option>
<option value="FR">FR</option>
<option value="AU">AU</option>
<option value="UK">UK</option>
<option value="IT">IT</option>
<option value="ES">ES</option>
<option value="SE">SE</option>
<option value="DK">DK</option>
<option value="US">US</option>
<option value="CA">CA</option>
</select>
<option value="NL">NL</option>
<option value="BE">BE</option>
<option value="DU">DU</option>
<option value="FR">FR</option>
<option value="AU">AU</option>
<option value="UK">UK</option>
<option value="IT">IT</option>
<option value="ES">ES</option>
<option value="SE">SE</option>
<option value="DK">DK</option>
<option value="US">US</option>
<option value="CA">CA</option>
</select>
De PHP voor de checkboxen:
Voeg $checked_zang toe aan de input.
Voor de option doe je eigenlijk een soortegelijk iets.
Wordt je option dynamisch opgebouwd? Zo nee, dan zou ik dit alsnog doen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
function landen_ophalen($geselecteerd_land)
{
for($index = 0; $index <=10; $index++)
{
$landen_ophalen .= "hier je option opbouwen";
}
}
?>
function landen_ophalen($geselecteerd_land)
{
for($index = 0; $index <=10; $index++)
{
$landen_ophalen .= "hier je option opbouwen";
}
}
?>
Het is $_POST['Werk'] i.p.v. $post['Werk']
Het werkt nu...
Ik had net als bij de andere inputs de value veranderd...
Bedankt Peter voor het meedenken...
Moest natuurlijk zijn:
Het werkt toch niet helemaal.
Want uiteraard vindt hij de values altijd.
Dus zijn alle checkboxen aangevinkt bij herstel.
Gewijzigd op 03/08/2017 17:47:04 door Hans De Ridder
Maar volgens mij wil je juist het formulier-veld in de $_POST gebruiken.
Gewijzigd op 03/08/2017 17:19:23 door - Ariën -
ternary' operator.....
Of lekker in-line met de 'Code (php)
1
<input type="checkbox" name="werk" value="zang" <?php echo ($_POST['werk'] == "zang" ? 'checked' : ''); ?>">
Dit heb ik staan.
Ook al een " verwijderd. Want staat er volgens mij te veel.
Maar ook met " werkt het niet.
Code (php)
1
<input class="single-checkbox" type="checkbox" name="Werk[]" value="Zang" <?php echo $checked_zang; ?>">
Gewijzigd op 03/08/2017 19:17:35 door - Ariën -
Pas het eens letterlijk aan naar wat ik hierboven heb gezegd... Dat moet werken.
Of gebruik de ternary-operator die compacter is. Bespaart meteen een hoop statements.
Want krijg het niet werkend.
Terwijl de value wel netjes wordt doorgegeven.
Je script is me wel duidelijk Peter.
De HTML stuurt de gegevens door aan PHP.
Die checkt de form. En komt eventueel met foutmeldingen.
Maakt deel uit van heel proces van registratie... Dus niet los alleen voor deze controle.
Opsich is het antwoord in dit topic al gegeven, dus ergens zal je implementatie wel fout zijn.
Maar zou op hetzelfde neer moeten komen..
Code (php)
Gewijzigd op 03/08/2017 20:57:18 door Hans De Ridder
Die laatste regels zijn overigens overbodig.
Werkt ook (nog) niet. Vreemd want bijna letterlijk overgenomen van voorbeeld uit 2016.
Code (php)
Overigens een andere vraag die hier bij hoort:
Ik gebruik ook een script om het IP te achterhalen.
Kan ik dus ook de landcode uitvissen met:
Maar is het nu zo dat je in je verblijfsland ALTIJD de code van het land hebt met je IP?
Los even van trucjes om de landcodes te omzeilen....
Anders zou ik de $ip_country kunnen gebruiken ipv het dropdown menu...
Nee natuurlijk niet. Je hebt te maken met proxies, VPN's, en als je server het heeft ook nog eens IPv6. Daarnaast heeft gethostbyaddr niet echt veel zin, want betrekkelijk weinig hostnamen zijn gestoeld op het toplevel domain dat bij een land hoort.
Nee, aan de hand van die functie krijg je een hostname die bij dat IP hoort. En die 'tld' hoeft niet te corresponderen met het land van verblijf. Als je dat wilt doen kan je beter verdiepen in ip2geo databases.
Hans De Ridder op 04/08/2017 01:13:14:
Maak je wel gebruik van een code editor? Zo nee, download er dan 1 om mee te beginnen. Je zult dan gelijk zien wat er fout is hier aan. Je opent meer dan dat je afsluit. (en op de verkeerde plaatsen)
Verder, de manier die ik je opgaf, was o.a. om dit te voorkomen. De manier die ik je gaf is een iets meer visuele manier van programmeren, die daarnaast ook nog mooi op te splitsen is in een gedeelte skin en een gedeelte rekenwerk.
Zo kun je een programma bouwen met een 'rustige' skin die snel te lezen is voor iedereen. Zelfs zonder php kennis.
Mocht er nog iets onlogisch inzitten dan hoor ik het graag.
Bedankt voor jullie geduld...
Waar is je controle of $_POST['country_code'] geset is?