Beste,
Hieronder zien jullie een stukje code van een script die ik aan het maken ben.
De probleem ligt bij de land & provincie gedeelte.
Wat heb ik en wat wil ik:
Als je land selecteert, krijg je de provincies van die land te zien. Maar probleem is dat als je submit hij niet de juiste getal / value doorgeeft.
Als ik provincie + 1 doe, dan krijg ik in begin geen problemen, maar wanneer ik dan opsla; forum opnieuw submit, verandert hij de provincie value. (ook in database, dus waarschijnlijk door +1)
Wat kan ik?
Ik kan goed PHP, heeel laag niveau js.
Met vriendelijke groet,
Malik
PHP
<?
if ( !isset($_GET['info']) OR $_GET['info'] == "basic")
{
if ( isset($_POST['submit']) )
{
// empty check
if ( empty($_POST['cp']) ) { $error = "<b>Contactpersoon is leeggelaten</b>"; }
else if ( empty($_POST['bbnaam']) ) { $error = "<b>Er is geen Bed en breakfastnaam ingevuld</b>"; }
else if ( empty($_POST['adres']) ) { $error = "<b>Er is geen straat ingevuld</b>"; }
else if ( empty($_POST['adres-nr']) ) { $error = "<b>Er is geen adres nummer ingevuld</b>"; }
else if ( empty($_POST['tel']) ) { $error = "<b>Er is geen telefoon nummer ingevuld</b>"; }
else if ( empty($_POST['pc']) ) { $error = "<b>Er is geen postcode ingevuld</b>"; }
else if ( empty($_POST['gemeente']) ) { $error = "<b>Er is geen gemeente ingevuld</b>"; }
else if ( empty($_POST['land']) ) { $error = "<b>Er is geen land opgegeven</b>"; }
else if ( empty($_POST['provincie_select']) ) { $error = "<b>Er is geen provincie of land geselecteerd</b>"; }
else if (strlen($_POST['omschrijving_kort']) > "83") { $error = "<b>Maximum 80 karakters in omschrijving!"; }
if ( empty($error) )
{
// beveiliging en variabelen instellen
$cp = $mysqli->real_escape_string($_POST['cp']);
$bbnaam = $mysqli->real_escape_string($_POST['bbnaam']);
$adres = $mysqli->real_escape_string($_POST['adres']);
$nr = $mysqli->real_escape_string($_POST['adres-nr']);
$tel = $mysqli->real_escape_string($_POST['tel']);
$pc = $mysqli->real_escape_string($_POST['pc']);
$gemeente = $mysqli->real_escape_string($_POST['gemeente']);
$land = $mysqli->real_escape_string($_POST['land']);
$o_k = $mysqli->real_escape_string($_POST['omschrijving_kort']);
$prov = $mysqli->real_escape_string($_POST['provincie_select']);
#$prov = $prov -1;
$mysqli->query("UPDATE `lid` SET `contactpersoon`='".$cp."', `bbnaam`='".$bbnaam."', `straat`='".$adres."', `nummer`='".$nr."', `telefoonnummer`='".$tel."', `postcode`='".$pc."', `land`='".$land."', `gemeente`='".$gemeente."', `provincie`='".$prov."', `omschrijving_kort`='".$o_k."' WHERE `id`='".$assoc['id']."'") or die($mysqli->error);
$error = '<b>Je hebt de gegevens succesvol kunnen aanpassen!</b>';
header("Refresh: 2; URL=?p=bb-beheer");
unset($_POST['submit']);
}
}
?>
<script language="JavaScript">
// Landen selecteren
var province = new Array(4); province[0] = new Array(10);
province[0][0] = "Antwerpen"; province[0][1] = "Limburg";
province[0][2] = "Oost-Vlaanderen"; province[0][3] = "West-Vlaanderen";
province[0][4] = "Vlaams brabant"; province[0][5] = "Henegouwen";
province[0][6] = "Luik"; province[0][7] = "Luxemburg";
province[0][8] = "Namen"; province[0][9] = "Waals-Brabant";
province[1] = new Array(12); province[1][10] = "Noord-Holland";
province[1][11] = "Zuid-Holland"; province[1][12] = "Groningen";
province[1][13] = "Friesland"; province[1][14] = "Drenthe";
province[1][15] = "Overijssel"; province[1][16] = "Flevoland";
province[1][17] = "Gelderland"; province[1][18] = "Utrecht";
province[1][19] = "Noord-Brabant"; province[1][20] = "Zeeland";
province[1][21] = "Limburg"; province[2] = new Array(6);
province[2][22] = "Frankrijk"; province[2][23] = "Spanje";
province[2][24] = "Italie"; province[2][25] = "Luxemburg";
province[2][26] = "Portugal"; province[2][27] = "Groot-Britanie";
// Functie uitvoeren!
function provincie(invoer, FormnaaM, uitvoer)
{
document.forms[FormnaaM].provincie_select.options.length = 1;
var mindex = invoer.value-1;
if(invoer.value == 2) { ivalue = 10; do_loops = 12; }
else if(invoer.value == 3) { ivalue = 22; do_loops = 6; }
else { ivalue = 0; do_loops = province[mindex].length; }
if(province[mindex].length == 0)
{
document.forms[FormnaaM].provincie_select.options[0] = new Option('Selecteer land','');
}
else{
document.forms[FormnaaM].provincie_select.options[0] = new Option('Provincie:','');
for(i=0;i< do_loops;i++)
{
option_value = ivalue+i;
option_index = i;
document.forms[FormnaaM].provincie_select.options[option_index] = new Option(province[mindex][(ivalue+i)],option_value);
}
}
}
</script>
<form action="" method="post" name="form_select">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" align="center"><a href="index.php?p=bb-beheer&info=basic">Basic informatie</a></td>
<td width="50%" align="center"><a href="index.php?p=bb-beheer&info=pro">Pro informatie</a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td colspan="2">Bekende basic informatie:</td>
</tr>
<tr>
<td>Contactpersoon:</td>
<td><?=$assoc['contactpersoon'];?></td>
</tr>
<tr>
<td>Naam B&B:</td>
<td><?=$assoc['bbnaam'];?></td>
</tr>
<tr>
<td>Adres:</td>
<td><?=$assoc['straat'];?> <?=$assoc['nummer'];?></td>
</tr>
<tr>
<td>Postcode:</td>
<td><?=$assoc['postcode'];?></td>
</tr>
<tr>
<td>Gemeente:</td>
<td><?=$assoc['gemeente'];?></td>
</tr>
<?
if ($assoc['telefoonnummer'] == "") { $tel = 'Onbekend'; } else { $tel = $assoc['telefoonnummer']; }
?>
<tr>
<td>Telefoonnummer:</td>
<td><?=$tel;?></td>
</tr>
<?
$iLand = Array('Onbekend', 'België', 'Nederland', 'Buitenland');
$iProv = Array('Antwerpen', 'Limburg', 'Oost-Vlaanderen', 'West-Vlaanderen', 'Vlaams-Brabant', 'Henegouwen', 'Luik', 'Luxemburg', 'Namen', 'Waals-Brabant', 'Noord-Holland', 'Zuid-Holland', 'Groningen', 'Friesland', 'Drenthe', 'Overijssel', 'Flevoland', 'Gelderland', 'Utrecht', 'Noord-Brabant', 'Zeeland', 'Limburg', 'Frankrijk (L)', 'Spanje (L)', 'Italië (L)', 'Luxemburg (L)', 'Portugal (L)', 'Groot-Britanië (L)', 'Onbekend');
?>
<tr>
<td>Land:</td>
<td><?=$iLand[$assoc['land']];?></td>
</tr>
<tr>
<td>Provincie:</td>
<td><?=$iProv[$assoc['provincie']];?></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td colspan="2">Basic informatie instellen:</td>
</tr>
<? if ( isset($error) ) { ?>
<tr>
<td colspan="2"><?=$error;?></td>
</tr>
<? } else { ?>
<tr>
<td>Contactpersoon:</td>
<td><input type="text" name="cp" value="<?=$assoc['contactpersoon'];?>" /></td>
</tr>
<tr>
<td>Naam B&B:</td>
<td><input type="text" name="bbnaam" value="<?=$assoc['bbnaam'];?>" /></td>
</tr>
<tr>
<td>Adres:</td>
<td><input type="text" name="adres" value="<?=$assoc['straat'];?>" /><input type="text" name="adres-nr" size="3" value="<?=$assoc['nummer'];?>" /></td>
</tr>
<tr>
<td>Postcode:</td>
<td><input type="text" name="pc" value="<?=$assoc['postcode'];?>" /></td>
</tr>
<tr>
<td>Gemeente:</td>
<td><input type="text" name="gemeente" value="<?=$assoc['gemeente'];?>" /></td>
</tr>
<tr>
<td>Telefoonnummer:</td>
<td><input type="text" name="tel" value="<?=$assoc['telefoonnummer'];?>" /></td>
</tr>
<tr>
<td>Land:</td>
<td>
<select name="land" onClick="provincie(this,'form_select','provincie_select')">
<? if ($assoc['land'] == "0") {?>
<option value="">Land selecteren:</option>
<? } else { ?>
<option value="<?=$assoc['land'];?>" SELECTED><?=$iLand[$assoc['land']];?></option>
<option value="">Land selecteren:</option>
<? } ?>
<option value="1">België</option>
<option value="2">Nederland</option>
<option value="3">Buitenland</option>
</select>
</td>
</tr>
<tr>
<td>Provincie:</td>
<td>
<select name="provincie_select">
<? if ($assoc['provincie'] == "28") {?>
<option value="">Selecteer eerst land</option>
<? } else { ?>
<option value="<?=$assoc['provincie'];?>"><?=$iProv[$assoc['provincie']];?> (<?=$assoc['provincie'];?>)</option>
<option value="">Selecteer land opnieuw</option>
<? } ?>
</select>
</td>
</tr>
<tr>
<td>Korte omschrijving:</td>
<td><textarea name="omschrijving_kort" cols="25" rows="3" maxlength="80"><?=$assoc['omschrijving_kort'];?></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Gegevens instellen en online publiceren!" /></td>
</tr>
<?
}
?>
<tr>
<td> </td>
</tr>
</table>
</form>
<? } else {?>
<?
if($assoc['status'] == "basic")
{
header("Location: index.php?p=pro-account");
}
?>
<? } ?>
Toon Meer