PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle nach Dropdown-Auswahl füllen


FRAD
29.02.2012, 12:26:14
Hi,

ich möchte gerne, das wenn ich einen Datensatz aus einem Dropdownfeld ausgewählt habe sich die darunterliegende Tabelle nur mit den Daten füllt, die zu dem ausgewählten Datensatz gehören. Weiß jemand wie das zu realisieren ist?

Das Dropdown bekommt ich bereits gefüllt:

<form action="<?= $PHP_SELF ?>" method="post">
Einträge für START:
<select name="stadt">
<?php
mysql_connect($datenbank_host, $datenbank_user, $datenbank_passwort) or die(mysql_error());
mysql_select_db($datenbank_name) or die(mysql_error());
// SQL-Query erzeugen

$sql = "SELECT * FROM `start`";
$result = mysql_query($sql) OR die(mysql_error());
print_r($result);

while($row = mysql_fetch_assoc($result)) {

echo "<option>".$row['creation_date']."</option>";
}
?>
</select>
<input type="submit" value="Senden" />
</form>

Nun möchte ich die dazugehörigen Datensätze in eine darunterliegende HTML Tabelle schreiben, welche dem selektierten Eintrag in dem Dropdown entsprechen.

Wa smüsste ich hierzu tun?

vt1816
29.02.2012, 12:51:24
Hinweis:

<?= $PHP_SELF ?> ist Pfui
Wozu brauchst Du print_r($result); an dieser Stelle?


Frage:

Soll die Seite nach der Auswahl neu geladen werden (PHP) oder nicht (JS/jQuery)?

FRAD
29.02.2012, 13:22:32
print_r war nur zum debuggen... ignorieren.

Am liebsten wäre es mir, wenn die Seite nicht neugeladen werden muss.

Wie würdest du es machen?

Hast du für beides evtl. ein paar Hinweise, Schnipsel usw.?

Grüße

vt1816
29.02.2012, 13:45:32
Würde in Abhängigkeit des Projektes einen von beiden Wegen nehmen.

zu 1. Tipp: via Formularverabreitung

zu 2. Tipp: via "onclick='javascript:verarbeitung();"

FRAD
29.02.2012, 13:51:01
Hi,

könntest du mir dabei ein wenig helfen?

Wie gesagt, das Dropdown wird schon mit Werten aus der DB versorgt.

Wenn ich nun auf senden klicke, müsste ich im $_POST eine Info über die ID, welche in der DB ist, über den selektierten Eintrag sehen/finden.

Erst dann kann ich ja eine weitere Abfrage über den gewünschten Datensatz machen...

PROBLEM: Wie erhalte ich die ID der Zeile, nach dem ich auf Submit gegangen bin?


<form action="index.php" method="post" name="formular" id="formular">
Einträge für START:
<select name="seldate">
<?php
mysql_connect($datenbank_host, $datenbank_user, $datenbank_passwort) or die(mysql_error());
mysql_select_db($datenbank_name) or die(mysql_error());
// echo 'aaaaaaaaa';
// SQL-Query erzeugen

$sql = "SELECT * FROM `start`";
$result = mysql_query($sql) OR die(mysql_error());
//print_r($result);

while($row = mysql_fetch_assoc($result)) {

echo "<option>".$row['creation_date']."</option>";
}
?>
</select>
<input type="submit" name="submitbutton" id="submitbutton" value="Senden" />
</form>


Dieser Code


<?
if (isset( $_POST['submitbutton'] ))
{
echo "<pre>" .print_r( $_POST, true ). "</pre>";
}


ergibt diesen Output:

Array
(
[seldate] => 2012-02-29 11:41:37
[submitbutton] => Senden
)

Nur wie bekomme ich die ID des Datensatzes rein?

vt1816
29.02.2012, 14:01:39
Wie sieht die Struktur der Tabelle start aus?

FRAD
29.02.2012, 14:14:04
So:

CREATE TABLE IF NOT EXISTS `start` (
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`val100` varchar(250) NOT NULL COMMENT 'Betriebsart',
`val200info` tinyint(2) NOT NULL COMMENT 'Innenraumtemperatur',
`val300info` int(3) NOT NULL COMMENT 'Warmwasser',
`val400info` int(1) NOT NULL COMMENT 'Lüfterstufe',
`creation_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;

vt1816
29.02.2012, 14:35:37
while($row = mysql_fetch_assoc($result))
{
echo "<option value=\"" .$row['id'] ."\">" .$row['creation_date'] ."</option>";
}

FRAD
29.02.2012, 15:04:49
Danke, aber wie bekomme ich das in das Array:

if (isset( $_POST['submitbutton'] ))
{
echo "<pre>" .print_r( $_POST, true ). "</pre>";
}

Ausgabe:

Array
(
[seldate] => 1
[submitbutton] => Senden
)

Würde gerne die mit der ID weiter arbeiten...


EDIT:

Alles klar... habe die ID ja bereits im Array ;))))))

vt1816
29.02.2012, 15:11:42
[..]
EDIT:

Alles klar... habe die ID ja bereits im Array ;))))))

Dann sind ja jetzt alle Klarheiten beseitigt ... :-)