Probleem met sessie (Dropdown menu - Database)
Ik ben met een script bezig en ik liep even tegen dit sessie probleem.
Ik haal alle informatie(De namen van de trainingen) van de database.
Op het php bestand heb ik de volgende script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$sql = "SELECT *
FROM ".TRAINING_TABLE."
WHERE training_active = 1
ORDER by training_name ASC";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
$training_dropdown_form .= "<option value=\"\">Maak uw keuze</option>";
while ($training_row = $site_db->fetch_array($result))
{
$training_dropdown_form .= "<option value=\"".$training_row['training_name']."\"";
if($_SESSION['training_afmelden_training'] == $training_row['training_name']){
$selected = "\"SELECTED\"";
}else{
$selected = "";}
$training_dropdown_form .= " ".$selected.">".$training_row['training_name']."</option>";
}
$site_template->register_vars("training_dropdown_form", $training_dropdown_form);
unset($training_dropdown_form);
?>
$sql = "SELECT *
FROM ".TRAINING_TABLE."
WHERE training_active = 1
ORDER by training_name ASC";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
$training_dropdown_form .= "<option value=\"\">Maak uw keuze</option>";
while ($training_row = $site_db->fetch_array($result))
{
$training_dropdown_form .= "<option value=\"".$training_row['training_name']."\"";
if($_SESSION['training_afmelden_training'] == $training_row['training_name']){
$selected = "\"SELECTED\"";
}else{
$selected = "";}
$training_dropdown_form .= " ".$selected.">".$training_row['training_name']."</option>";
}
$site_template->register_vars("training_dropdown_form", $training_dropdown_form);
unset($training_dropdown_form);
?>
En op het html bestand heb ik het volgende form:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<FORM id="ContactForm" method="post" action="{url_send_training_afmelden}">
<fieldset>
<legend>Contactpersoon</legend>
<DIV class=fm-req>
<label for="email">{lang_training_afmelden_training}:</label>
<select
type="text"
name="training_afmelden_training">
{training_dropdown_form}
</select>
</DIV>
</fieldset>
<fieldset class="action">
<input class="form_button_send" type="submit" name="send_training_afmelden" value="{lang_submit}" />
<input class="form_button_reset" type="reset" value="{lang_reset}" />
</fieldset>
</form>
<fieldset>
<legend>Contactpersoon</legend>
<DIV class=fm-req>
<label for="email">{lang_training_afmelden_training}:</label>
<select
type="text"
name="training_afmelden_training">
{training_dropdown_form}
</select>
</DIV>
</fieldset>
<fieldset class="action">
<input class="form_button_send" type="submit" name="send_training_afmelden" value="{lang_submit}" />
<input class="form_button_reset" type="reset" value="{lang_reset}" />
</fieldset>
</form>
Dus elke keer als ik het formulier niet helemaal heb ingevuld krijg ik een foutmelding (Je bent vergeten om ...)
Het probleem is dat ik elke keer de naam van de training moet weer invullen, omdat ie niet wordt herkent door de sessie.
Ik hoop dat ik wat hulp krijg.
Mocht je nog vragen hebben, dan hoor ik het graag van je.
Alvast bedankt,
SZ
Gewijzigd op 09/11/2011 20:55:21 door Sara Z
gebruiken, PHP moet weten dat er sessies worden gebruikt.
Gewijzigd op 09/11/2011 21:14:04 door Eddy B
Code (php)
1
2
3
4
2
3
4
<?php
session_start();
$_SESSION['training_afmelden_training'] = $HTTP_POST_VARS['training_afmelden_training'];
?>
session_start();
$_SESSION['training_afmelden_training'] = $HTTP_POST_VARS['training_afmelden_training'];
?>
Enig idee?
Toevoeging op 09/11/2011 21:24:59:
Het is gemaakt. Dank je wel Eddy:)
POST variabelen.
Tevens kan jou code een heel stuk netter. Bouw fouthandeling dat scheelt al heel veel
HTTP_POST_VARS is verleden tijd. gebruik de Tevens kan jou code een heel stuk netter. Bouw fouthandeling dat scheelt al heel veel
Ik zal het doen. Dank je wel Jordi:)