Avatar billede hammerhead Nybegynder
31. august 2004 - 13:01 Der er 14 kommentarer og
1 løsning

Dynamisk opdatering af felter

Hej.

Jeg ved ikke om dette spørgsmål mest er et Mysql eller et PHP spg. men her er det: Jeg henter data ud fra databasen og får det præsenteret fint på en side. Nu vil jeg gerne have lavet en dropdown menu hvor siden bliver opdateret med værdierne for det valgte.

Se denne side: http://www.aircraftrecognition.com/sql/hentjager3.php

De felter der er markeret med fed forbliver de samme, men dataene skal ændres og vises for det valgte fly. Altså en dropdown menu hvor man vælger f.eks Eagle, Tornado, Hornet osv.
Data vises sådan: Producent: <? print $row["producent"]; ?>
Avatar billede donslund Nybegynder
31. august 2004 - 15:03 #1
Hvis det er producent der styrer hvad der skal ses laver du bare en dropdown-menu hvor dine henvisninger hedder

hentjager3.php?producent=fly1
hentjager3.php?producent=fly2
hentjager3.php?producent=fly3
hentjager3.php?producent=fly4

Og så henter du bare:

select * from tabelnavn where producent = $producent
Avatar billede detox Nybegynder
31. august 2004 - 15:37 #2
Jeg vil foreslå du laver din dropdown på den her måde. Her er et eksempel:

<?php
require 'db.php';
if (isset($_POST['submit'])) {
    $res = mysql_query("select * from tabel where id=" . $_POST['fly']);
    $row = mysql_fetch_assoc($res);
    echo "<p><b>Fly: </b>$row[navn]<br />";
    echo "<b>Andet: </b>$row[andet]</p>";
} else {

$option = '';
$res = mysql_query("select id, navn from tabel");
while ($row = mysql_fetch_assoc($res)) {
    $option .= "<option value='$row[id]'>$row[navn]</option>\n";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<select name="fly">
<?php echo $option?>
</select>
<input type="submit" name="submit" value="Find fly" />
</form>
<?php
}?>
Avatar billede detox Nybegynder
31. august 2004 - 15:40 #3
Her er jeg så gået ud fra du har et unikt ID for hver række i tabellen.
Avatar billede hammerhead Nybegynder
31. august 2004 - 19:00 #4
Hej.
Det var godt i forstod hvad jeg mente :-)
Jeg prøver det og vender tilbage.
Avatar billede hammerhead Nybegynder
08. september 2004 - 19:34 #5
Så fik jeg tid til at kigge på det.

donslund, jeg har prøvet din med følgende opsætning:

Åben til databasen ser sådan ud
<?php
include "db.php";
$res = mysql_query("SELECT * FROM jagerfly WHERE navn = $navn");
$row = mysql_fetch_array($res);
?>


Dropdownmenu ser sådan ud
<form id="menu" action="">
<p>
<select size="1" onchange="window.open(this.options[this.selectedIndex].value,'_self')">
<option selected="selected">Vælg fly</option>
<option value="fakta.php?navn=F-15 Eagle">F-15 Eagle</option>
<option value="fakta.php?navn=F-18 Hornet">F-18 Hornet</option></select>
</p>
</form>

Præsenteres med
<? print $row["navn"]; ?>

se det i brug og fejlen her: http://www.flykending.dk/fakta.php
Avatar billede hammerhead Nybegynder
08. september 2004 - 19:35 #6
linie 145 er
$row = mysql_fetch_array($res);
Avatar billede detox Nybegynder
08. september 2004 - 20:04 #7
Du skal bruge apostroffer her:

$res = mysql_query("SELECT * FROM jagerfly WHERE navn = '$navn'");
Avatar billede hammerhead Nybegynder
08. september 2004 - 20:20 #8
Tak detox, det virker.
Hvad med din løsning - er den bedre/mere stabil eller?
Avatar billede hammerhead Nybegynder
08. september 2004 - 20:38 #9
Lige et tillægsspg. Hvordan får jeg siden til at vise et valg fra start, således at siden ikke mangler indhold når den åbnes.
Avatar billede detox Nybegynder
08. september 2004 - 22:16 #10
Ved at lave et standardnavn, du kan fx bruge dette øverst:

$navn = isset($_GET['navn']) ? $_GET['navn'] : 'standard_navn';
Avatar billede detox Nybegynder
08. september 2004 - 22:18 #11
Den jeg har lavet er mere dynamisk, da den selv laver dropdown menuen ud fra indholdet i din tabel, fremfor at skulle tilføje dem manuelt når du tilføjer fly i tabellen.
Avatar billede detox Nybegynder
08. september 2004 - 22:30 #12
Du vil kunne lave det på den her måde. Hvis du har et ID i din tabel vil det dog være bedre:

<?php
$navn = isset($_GET['navn']) ? $_GET['navn'] : 'F-15 Eagle';
include "db.php";
$res = mysql_query("SELECT * FROM jagerfly WHERE navn = '$navn'");
$row = mysql_fetch_array($res);
echo $row['navn'] . "<br /><br />";
$option = '<option selected="selected">Vælg fly</option>';
$res = mysql_query("select navn from tabel");
while ($row = mysql_fetch_assoc($res)) {
    $option .= "<option value='fakta.php?navn=$row[navn]'>$row[navn]</option>\n";
}
?>
<form id="menu" action="">
<p>
<select size="1" onchange="window.open(this.options[this.selectedIndex].value,'_self')">
<?php echo $option?>
</p>
</form>
Avatar billede hammerhead Nybegynder
08. september 2004 - 22:31 #13
ok, det er smart.
Når du siger placer øverst, hvor mener du så.

detox, du må hellere smide et svar, så du kan få nogle point, og da jeg brugte dit oplæg donslund, så må du også gerne smide et svar.
Avatar billede hammerhead Nybegynder
08. september 2004 - 22:33 #14
ok, vi tastede vist samtidigt - er med nu.
Avatar billede detox Nybegynder
15. september 2004 - 22:57 #15
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Senior Platform Engineer

Netcompany A/S

Linux Operations Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Nye kolleger søges til IT Stab i Forsvaret