Trött och stressig hjärna, så jag får be om ursäkt om det är idiotiska frågor jag kommer med, men jag ställer dom hellre i förhoppning om att någon vänlig själ kan hjälpa mig än att gräva ner mig ännu djupare.
Jag har ett formulär där man först ska välja ett alternativ i en dropdown-meny och sen fylla på med resten av uppgifterna. Beroende på vad man valde i dropdown-menyn så ska uppgifterna in i olika tabeller, hur löser man det?
Kan man köra någon if-sats som kollar vilket "value" option har, eller får man gå tillväga på något annat sätt?
Ja, du måste kolla med en if sats eller en switch sats.
switch ($_POST['mindropdown']){
case 'alt1':
// alternativ 1 är valt, gör det du ska...
break;
case 'alt2':
// alternativ 2 är valt, gör det du ska...
break;
default:
// Inget alternativ valt som stämmer med dina case
}
Ja, du måste kolla med en if sats eller en switch sats.
switch ($_POST['mindropdown']){
case 'alt1':
// alternativ 1 är valt, gör det du ska...
break;
case 'alt2':
// alternativ 2 är valt, gör det du ska...
break;
default:
// Inget alternativ valt som stämmer med dina case
}
Vad är det jag ska skriva i 'alt1' och 'alt2'? För oavsett om jag skriver vad jag har satt för value på valet eller innehållet i den så hoppar switch-satsen till default.
Då måste jag göra något annat fel.
Jag har lagt in switch-satsen i sidan som tar emot och läser in formuläret, efter att jag har lagt in resultaten i variabler. Ska den ligga någon annanstans?
Här är sidan som tar emot och skickar vidare till databasen.
$val = mysql_real_escape_string($_POST["val"]);
$namn = mysql_real_escape_string($_POST["namn"]);
$gatuadress = mysql_real_escape_string($_POST["gatuadress"]);
$postnummer = mysql_real_escape_string($_POST["postnummer"]);
$ort = mysql_real_escape_string($_POST["ort"]);
$tel = mysql_real_escape_string($_POST["tel"]);
$epost = mysql_real_escape_string($_POST["epost"]);
$meddelande = mysql_real_escape_string($_POST["meddelande"]);
switch ($_POST["val"]){
case 'ett':
$nykund = mysql_query("INSERT INTO blabla (det här vet jag att det fungerar)
VALUES(det här vet jag att det fungerar)")
or die("Kunde inte lägga till kund:<br />" . mysql_error());
break;
case 'tva':
$nykund = mysql_query("INSERT INTO blablatva (det här vet jag att det fungerar)
VALUES(det här vet jag att det fungerar)")
or die("Kunde inte lägga till kund:<br />" . mysql_error());
break;
default:
echo "<p>Du måste välja ett val.</p><br />";
}
Det är inga problem med koden som lägger till infon i tabellen, för det fungerade innan jag la in switch-satsen.
Har formuläret metoden POST så får du värdena i variabeln $_POST['namnet']
Använder du metoden GET så får du använda $_GET['namnet'] istället. Och du ser även variablerna och värdena i adressfältet om du använder GET. (t.ex https://www.minsida.com/sidan.php?namn=värde)
Jag ser faktiskt inget fel i din kod.
Funkar inte den här switch satsen heller om du sparar den i en ny fil?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>
<body>
<?php
switch ($_POST["val"])
{
case 'ett':
echo 'ett';
break;
case 'tva':
echo 'två';
break;
default:
echo "<p>Du måste välja ett val.</p><br />";
}
?>
<form method="post">
<select name="val">
<option value="ett">val1</option>
<option value="tva">val2</option>
</select>
<input name="Button1" type="submit" value="button" />
</form>
</body>
</html>