burmy
Goto Top

Mehrfachauswahl über Select Box und dann zur Datenbank senden

Mehrfachauswahl einer Select Box an die DB senden

Hallo Freunde

Ich bin Zurzeit dabei mein Formular zu erweitern, das heißt das ich eine Select Box habe die aus der Datenbank gefüllt wird und ich dann einen Wert auswählen kann den ich dann zurück als INSERT oder UPDATE zur DB schicken kann, das klappt sowit auch.

Nun möchte ich eine Mehrfachauswahl einer Select Box machen, indem ich 2 oder mehr Werte auswähle, die sollen dann zur DB gesendet werden, nun ist meine Frage geht das überhaupt aus einer DB gespeissten Select Box eine Mehrfachauswahl zu machen ? und wie wird das über den PHP Code gelöst ?

Meine Codes lauten wie folgt:


1. Die Funktion für die Select Box:

<?php // Select Box Inhalt von DB
function select_box($vergleich){
 $sql = ("select ID,NAME from Tabelle");   
 $query = mysql_query($sql);
 ?> <select name="Wert">  

 <?php while($liste = mysql_fetch_array($query)) {  
 if($liste["ID"] == $vergleich)  
 {  ?> <option value="<?= $liste["ID"] ?>" selected><?= $liste["NAME"] ?></option> <?php }  
 else
 {  ?> 

<option value="<?= $liste["ID"] ?>"><?= $liste["NAME"] ?></option> <?php }  
 
	} 
  } 
?>

Die Funktion läuft Prima, dort kann ich eine einfache Auswahl treffen und die dann zurück zu DB senden.

Mein Code für die Select Box befindet sich in einer Tabelle und wird ja von der Funktion gespeist, sie lautet wie folgt:

<?php 
select_box($NAME); 
?>

Nun möchte ich wie gesagt mehrere Werte aus der Box wählen und zur DB senden, ich weiß wohl das es über arrays gemacht werden sollte.

$Werte = array[$Wert1],[$Wert2],.....[Wertn]

Aber wie das in meine Funktion eingebaut wird weiß ich dann wieder nicht.

Und wie werden die Werte dann zurück in das Formular gegeben ?

$row[$Wert1],[$Wert2] 

Wäre eine Toll wenn mir jemand helfen könnte.

mfg Burmy

Content-Key: 45071

Url: https://administrator.de/contentid/45071

Printed on: April 16, 2024 at 04:04 o'clock

Member: Xaero1982
Xaero1982 Nov 23, 2006 at 06:06:54 (UTC)
Goto Top
1. Die Funktion für die Select Box:

> <?php // Select Box Inhalt von DB
> function select_box($vergleich){
>  $sql = ("select ID,NAME from  
> Tabelle");   
>  $query = mysql_query($sql);
>  ?> <select name="Wert">  
> 
Fein du wählst alles aus der Tabelle aus.

>  <?php while($liste =
> mysql_fetch_array($query)) {  
>  if($liste["ID"] == $vergleich)  
> 

Dann guckste ob liste["ID"] == vergleich ist also gleich dem aus Name.. meiner Ansicht nach kann dies nur gleich sein, denn was willste anderes auswählen wenn nur werte aus der db drin stehen.
{ ?> <option value="<?=
$liste["ID"] ?>"
selected><?= $liste["NAME"]
?></option> <?php }



else
{ ?>

<option value="<?=
$liste["ID"] ?>"><?=
$liste["NAME"] ?></option>
<?php }

}

Hier wirst du nie hinkommen!
}
?>



lass dir doch einfach mal das ausgeben was du beim select mehrerer bekommst ...
Im Moment weiß ich nicht so recht was du erreichen willst...
Vielleicht ja ein anderer ^^
Member: Guenni
Guenni Nov 23, 2006 at 06:27:30 (UTC)
Goto Top
@burmy

Hi,

Ein ganz einfaches Script:

//Zusammensetzen der Abfrage
// Erstes Element des Arrays, siehe Form, zuweisen....
$query="select $auswahl";   
$i=1;
// .... anschließend in einer Schleife ein Komma und das nächste Element anhängen....
while($i<count($auswahl)){
 $query.=",".$auswahl[$i];  
 $i++;
}
// .... zum Schluß Abfrage vervollständigen
$query.=" from tabelle";   
// Testausgabe 
echo "Testausgabe";  
echo "$query";  
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form action="select.php">  
<!-- Listboxname als Array deklarieren -->
<select multiple="yes" name="auswahl">  
<!-- Ein Element als ausgewählt deklarieren, sonst gibt es eine Fehlermeldung -->
<option selected="yes">Apfel</option>  
<option>Birne</option>
<option>Banane</option>
<option>Kirsche</option>
<option>Erdbeere</option>
<input type="submit" value="Wählen">  
</select>
</form>
</body>
</html>

Du kannst mehrere Elemente in der Listbox an-/abwählen, in dem du
die STRG-Taste gedrückt hälst und mit der Maus die einzelnen Elemente
anklickst.

Nach Absenden des Formulars siehst du dann die Ausgabe deiner
Abfrage für die Datenbank.

Grüße
Günni
Member: burmy
burmy Nov 23, 2006 at 12:19:36 (UTC)
Goto Top
@ Xaero1982, @günni


ich werde Eure beiden Versionen mal testen, ich glaube das die zweite version wohl die bessere ist.

@Xaero1982

Ich möchte einfach nur 2 Werte aus der Select Bx die mir im Formular angezeigt bekomme auswählen und diese dann an die DB schicken.

Es ist für ein Formular die unsere Hardware der Firma beinhaltet, und bei einigen Siervern möchte ich aus der Select Box der IP eben mehrere IP Adressen einem Server zuweisen, da ein Server ja auch mehrere IP Adressen haben kann. Das ist einfach mein Ziel.

Vielen dank Euch beiden, ich melde mich vielleicht Morgen, um euch ein Feedback zu geben.

Gruß burmy
Member: Xaero1982
Xaero1982 Nov 23, 2006 at 12:53:04 (UTC)
Goto Top
Bitte, aber es ging mir um dein vorhandenes Script ..
Ich habe dir keinen Vorschlag unterbreitet sondern eine Frage gestellt face-smile

Lies es noch mal face-smile
Member: burmy
burmy Nov 23, 2006 at 16:59:58 (UTC)
Goto Top
@günni

Hi Günni, du ich habe da eine Frage:

Wenn die Inhalte der Datenbank angezeigt werden müssen och auch die eindeutigen ID's mit übertragen werden, wenn ich eine Mehrfachauswahl treffe werden doch die Werte aus der Select Box an die DB gesendet und eigentlich auch die dazugehörige ID,

so habe ich es doch auch in meiner Abfrage gemacht, $Liste[ID] und $Liste[NAME] , sonst kann beim submit doch kein eindeutiger Wert zur DB gesendet werden, ich habe das geprüft, die ID muss auf jeden Fall mit in die Abfrage !!!!!

Freue mich auf Antwort

Gruß Burmy

@ Xaero1982

Ok mache ich, melde mich