Listbox onChange Seite neu laden

aquarius

Mitglied
Hi,

ich habe ne Listbox (Select < das sei nur gesagt weil man das auch ComboBox nennt) die listet die Werte eines Arrays auf... nun möchte ich, die Seite die diese Listbox anzeigt onChange neu laden und den ausgewählten Wert übergeben, damit das PHP Script entsprechend darauf reagiert... ich krieg das ums verrecken aber nicht hin... hab das mit dem loaction Objekt probiert... aber es geht nicht... kann mir jemand schnell helfen !


Dankeschön schoma ;)
 
Du bist im falschen Film äääh Forum ;)

onChange Aktionen können nicht PHP sein, sondern müssen Javascript sein. Deshalb verschiebe ich dich mal dahin.

-moved-
 
Du musst das Formular senden,z.B so:
PHP:
<form action="<?php echo $_SERVER['PHP_SELF'] ?>">
<select name="wert"onchange="this.form.submit()">
<option>bitte ausw&auml;hlen</option>
<option>bla</option>
<option>blubb</option>
</select>
</form>

Auf die Variable greifst du in PHP dann mit $_GET['wert'] zu.
 
Weiss nicht recht ob das hier reinpasst, das problem tritt im Zusammenhang mit vorhergehender lösung ein.
Habe also auch ein select und wähle etwas aus, ja nach Auswahl werden dann Daten aus der Datenbank ausgelesen, alles kein Problem
meine Frage betrifft jetzt das Optionsmenue kann ich dieses soweit manipulieren das es auf dem gewählten wert stehen bleibt?

hier der Quellcode(also nur ein Auszug aus meinem gesamten Code)
PHP:
 echo("<form action='$PHP_SELF' method=\"post\">");
echo("</head>");


 echo ("<table width=\"50%\" height=\"58\" > <tr><td></td>");


$dbanfrage = "SELECT * from PC order by IP";
  	$result = mysql_query ($dbanfrage); 							
	echo "<td> <select name=\"id\" onchange=\"this.form.submit()\" size=\"1\"> \n"; 
	while($row=mysql_fetch_array($result))
		{ 
      $help=$row[IP];
      echo ("<option onchange=\"wechsel($ID)\"value='$row[IP]'($_POST[ip])==($row[IP]) selected :>$row[IP]</option>"); 
		}
		
	echo "</select></td></tr>";

if($_POST['id'])
{
$ip=$_POST['id'];
echo(" postabfrgae"); 
echo $ip;
}
 
Also ich weiss nicht genau was dein Code machen soll... ich habe ihn versucht nachzuvollziehen... aber irgendwie gelang mir das nicht wirklich, vielleicht liegts auch daran das es nicht alles ist.

echo ("<option onchange=\"wechsel($ID)\"value='$row[IP]';
if($row[ip]==$id){print' selected';}
echo("bla");

So ungefähr...


Ich hoffe ich konnte helfen, bzw. hoffe dein Problem richtig verstanden zu haben.
 
du musst halt dafür sorgen, dass in der zuvor ausgewählten <option> nun ein "selected" steht.... :
Code:
<option selected>BLUBB</option>
....und zwar nur in dieser.

P.S. der onchange-Funktionsaufruf gehört in <select>
 
Weiterer Lösungsansatz

Hi,

wenn auch spät, hier ein weiterer Lösungsansatz.

Code:
<select name="select" onChange="location.replace('http://'+this.value+'')">
<option value="192.168.0.1">Neue IP: 192.168.0.1</option>
<option value="192.168.0.2">Neue IP: 192.168.0.2</option>
<option value="192.168.0.3">Neue IP: 192.168.0.3</option>
</select>

Die Funktion location.replace() ist ähnlich der Funktion window.location.href='datei.html', es können aber zusätzlich Variablen aus einem Formular weitergegeben werden. Des Weiteren wird die History überschrieben.

Liebe Grüße

NoFate
 
Zurück