hallo gemeinschaft
wir haben zwei dropboxen in einer form
das problem ist das zweite dropdown feld
beim ersten seitenaufruf sind in beiden dropdowns werte enthalten - d.h. ich kann als benutzer eine reederei auswählen - oder wenn ich das schiff kenne auch im zweiten dropdown das schiff
wenn ich nun aber das erste dropdown benutzt habe, dann werden im zweiten nur noch die schiffe angezeigt, die zur reederei gehören - mein prob ist nun - ich komme nicht wieder zurück - soll heissen, wenn der user nun noch ein schiff aussuchen möchte, welches er kennt bekommt er die gesamte liste aller schiffe nicht mehr angezeigt
index.php
get_ship.php
das ist das js
wenn ich mir das in der konsole anschaue, dann wird auch id=0 übergeben - aber es passiert kein füllen der dropbox
wir haben zwei dropboxen in einer form
das problem ist das zweite dropdown feld
beim ersten seitenaufruf sind in beiden dropdowns werte enthalten - d.h. ich kann als benutzer eine reederei auswählen - oder wenn ich das schiff kenne auch im zweiten dropdown das schiff
wenn ich nun aber das erste dropdown benutzt habe, dann werden im zweiten nur noch die schiffe angezeigt, die zur reederei gehören - mein prob ist nun - ich komme nicht wieder zurück - soll heissen, wenn der user nun noch ein schiff aussuchen möchte, welches er kennt bekommt er die gesamte liste aller schiffe nicht mehr angezeigt
index.php
PHP:
<?php
include_once 'dbconfig.php';
?>
<!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 http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Dynamic Dependent Select Box using jQuery and PHP</title>
<script type="text/javascript" src="jquery-1.4.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(".reederei").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "get_ship.php",
data: dataString,
cache: false,
success: function(html)
{
$(".ship").html(html);
}
});
});
});
</script>
<style>
label
{
font-weight:bold;
padding:10px;
}
div
{
margin-top:100px;
}
select
{
width:200px;
height:35px;
}
</style>
</head>
<body>
<center>
<div>
<label>Reederei :</label>
<select name="reederei" class="reederei" id="reederei">
<option selected="selected" value="0">--Reederei auswählen--</option>
<?php
$stmt = $DB_con->prepare("SELECT * FROM reederei group by ReedereiName");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['ReedereiID']; ?>"><?php echo $row['ReedereiName']; ?></option>
<?php
}
?>
</select>
<label>Schiff :</label> <select name="ship" class="ship" id="ship">
<option selected="selected">--Schiff auswählen--</option>
<?php
$stmt = $DB_con->prepare("SELECT * FROM schiffe");
$stmt->execute();
?><?php
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['ship_id']; ?>"><?php echo $row['name']; ?></option>
<?php
}?>
</select>
</div>
<br />
</center>
</body>
</html>
get_ship.php
PHP:
<?php
include('dbconfig.php');
if($_POST['id'])
{
$id=$_POST['id'];
if($id == "0"){
$db=mysql_connect("127.0.0.1", "root",""); //nur ein testzugang
mysql_select_db("kreuzfahrt");
$sql = "SELECT * FROM schiffe";
$result = mysql_query($sql) OR die(mysql_error());
echo "<select name='selectfield'>";
while($row = mysql_fetch_assoc($result))
echo "<option name='".$row['name']."'>".$row['name']."</option>";
echo "</select>";
}
else
{
$stmt = $DB_con->prepare("SELECT * FROM schiffe WHERE reederei_id=:id group by name");
$stmt->execute(array(':id' => $id));
?><option selected="selected">Schiff auswählen :</option><?php
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['ship_id']; ?>"><?php echo $row['name']; ?></option>
<?php
}
}
}
das ist das js
PHP:
<script type="text/javascript">
$(document).ready(function()
{
$(".reederei").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "get_ship.php",
data: dataString,
cache: false,
success: function(html)
{
$(".ship").html(html);
}
});
});
});
</script>
wenn ich mir das in der konsole anschaue, dann wird auch id=0 übergeben - aber es passiert kein füllen der dropbox
Zuletzt bearbeitet: