/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Vis data, når de er valgt
Fra : Britt Malka


Dato : 11-01-04 18:19

Godaften

Jeg må indrømme, at jeg er lidt i tvivl om, hvorvidt mit spørgsmål
hører hjemme her eller i database-gruppen ...

Jeg er i gang med at lave en formular til eget brug, hvor jeg på en
rulleliste gerne vil kunne vælge en e-mail-adresse (fra
MySQL-database), og herefter skal navn og adresse på personen dukke op
af sig selv.

Jeg kan kun få navn og adresse til at komme frem, hvis jeg bruger en
knap, men i så fald ryger rullelisten tilbage og viser første e-mail
på listen, uanset hvilken jeg har valgt.

Hvad kan jeg gøre for at få navn og adresse frem med det samme, hver
gang jeg har valgt en e-mail-adresse?

Her henter jeg e-mail-adressen fra databasen og anbringer den på
rullelisten:

$email = mysql_query("select * from tabel ORDER BY date ASC") or
die(mysql_error());
while ($row = mysql_fetch_array($email)) {
print "
<option>".$row['email1']."</option>";
}

Her - længere nede - får jeg indsat navn og adresse:

$email = $_REQUEST["kunde"];
$kunde = mysql_query("select * from tabel where email1 = '$email'");
while ($row = mysql_fetch_array($kunde)) {
print ("<p>".$row['first']." ".$row['last']."</p>");
}

--
Britt Malka
Tilmeld dig nyhedsbrev og få gratis ebog om html - http://www.tips-og-tricks.com/ebog.html
(Svar ikke til denne e-mail-adresse. Mail slettes på serveren p.g.a. spam)

 
 
Kasper Garnæs (11-01-2004)
Kommentar
Fra : Kasper Garnæs


Dato : 11-01-04 19:40

Britt Malka <news@foxladi.com> wrote:


> Jeg må indrømme, at jeg er lidt i tvivl om, hvorvidt mit spørgsmål
> hører hjemme her eller i database-gruppen ...


Jeg tror nærmere det høre til i dk.edb.internet.webdesign.clientside.

> Jeg er i gang med at lave en formular til eget brug, hvor jeg på en
> rulleliste gerne vil kunne vælge en e-mail-adresse (fra
> MySQL-database), og herefter skal navn og adresse på personen dukke op
> af sig selv.
>
> Jeg kan kun få navn og adresse til at komme frem, hvis jeg bruger en
> knap, men i så fald ryger rullelisten tilbage og viser første e-mail
> på listen, uanset hvilken jeg har valgt.
>
> Hvad kan jeg gøre for at få navn og adresse frem med det samme, hver
> gang jeg har valgt en e-mail-adresse?

Uden at være ekspert i clientside scripting, vil jeg umiddelbart foreslå dig
at du som før laver din rulleliste med email adresser hentet fra database. I
stedet for at at forsøge at placere for- og efternavne direkte på siden,
skal de dog i stedet sættes ind i et clientside array, der mapper
emailaddresser til navne. Når værdien i emailaddresserullelisten ændres,
hentes det tilsvarende navn i arrayet og vises på siden.

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Britt Malka (12-01-2004)
Kommentar
Fra : Britt Malka


Dato : 12-01-04 09:08

"Kasper Garnæs" <demos@mailme.dk> skrev:

> I
>stedet for at at forsøge at placere for- og efternavne direkte på siden,
>skal de dog i stedet sættes ind i et clientside array, der mapper
>emailaddresser til navne. Når værdien i emailaddresserullelisten ændres,
>hentes det tilsvarende navn i arrayet og vises på siden.

Aïe... Jeg forstod ikke meget her, desværre.

Altså, jeg har min rulleliste med e-mail-adresser som nu - så meget
forstod jeg.

Men den med clientside array fangede jeg ikke. Det lyder smart nok,
men hvordan?

--
Britt Malka
Tilmeld dig nyhedsbrev og få gratis ebog om html - http://www.tips-og-tricks.com/ebog.html
(Svar ikke til denne e-mail-adresse. Mail slettes på serveren p.g.a. spam)

Thomas Lindgaard (11-01-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 11-01-04 21:26

On Sun, 11 Jan 2004 18:19:03 +0100, Britt Malka wrote:

> Jeg kan kun få navn og adresse til at komme frem, hvis jeg bruger en
> knap, men i så fald ryger rullelisten tilbage og viser første e-mail
> på listen, uanset hvilken jeg har valgt.
>
> Hvad kan jeg gøre for at få navn og adresse frem med det samme, hver
> gang jeg har valgt en e-mail-adresse?

Hvis du kan leve med at brugeren skal omkring serveren for at få navn og
adresse vist, så er det blot et spørgsmål om at tilføje
'selected="selected"' til den valgte emailadresse.

<?php

while (<hent emailadresser fra database>)
{
if ( $emailadresse == <den valgte> )
{
print '<option selected="selected">'.$emailadresse.'</option>';
}
else
{
print '<option>'.$emailadresse.'</option>';
}
}

?>

Mvh.
/Thomas

Britt Malka (12-01-2004)
Kommentar
Fra : Britt Malka


Dato : 12-01-04 09:16

Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> skrev:

>Hvis du kan leve med at brugeren skal omkring serveren for at få navn og
>adresse vist,

Det kan jeg vist sagtens leve med, tror jeg. Forstår ikke helt
konsekvenserne.

>så er det blot et spørgsmål om at tilføje
>'selected="selected"' til den valgte emailadresse.

Okay. Kan desværre ikke helt se, hvorfor.

Det her - det skal være der, hvor navn og adresse skal vises, ikke?

><?php
>
> while (<hent emailadresser fra database>)

Så langt er jeg med.

> {
> if ( $emailadresse == <den valgte> )

Hvordan kan jeg få scriptet til at se, hvilken e-mail-adresse der er
valgt? Jeg har prøvet at kalde $kunde, men det virker ikke. Jeg
forstår ikke helt, hvorfor. Altså, jeg kan få den til at finde
e-mail-adressen fra feltet "kunde", hvis jeg beder den om det i
starten af scriptet, men ikke længere nede.

--
Britt Malka
Tilmeld dig nyhedsbrev og få gratis ebog om html - http://www.tips-og-tricks.com/ebog.html
(Svar ikke til denne e-mail-adresse. Mail slettes på serveren p.g.a. spam)

Thomas Lindgaard (12-01-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 12-01-04 10:46

On Mon, 12 Jan 2004 09:15:37 +0100, Britt Malka wrote:

> Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> skrev:
>
>>Hvis du kan leve med at brugeren skal omkring serveren for at få navn og
>>adresse vist,
>
> Det kan jeg vist sagtens leve med, tror jeg. Forstår ikke helt
> konsekvenserne.

Konsekvensen er at det er langsommere end hvis navn og adresse dukker op
via noget clientside-scripting - det kræver et reload af siden.

>>så er det blot et spørgsmål om at tilføje 'selected="selected"' til
>>den valgte emailadresse.
>
> Okay. Kan desværre ikke helt se, hvorfor.

Prøv at køre følgende lille script - så kan du se pointen:

<html>
<body>
<form>
<select name="rullemenu">
<?php
for ($i = 0; $i < 5; $i++)
{
printf(
'<option value="%d"%s>option %d</option>'."\n",
$i,
( $_REQUEST['rullemenu'] == $i ) ? ' selected="selected"' : '',
$i
);
}
?>
</select>
<input type="submit">
</form>
</body>
</html>

> Det her - det skal være der, hvor navn og adresse skal vises, ikke?
>
>><?php
>>
>> while (<hent emailadresser fra database>)
>
> Så langt er jeg med.
>
>> {
>> if ( $emailadresse == <den valgte> )
>
> Hvordan kan jeg få scriptet til at se, hvilken e-mail-adresse der er
> valgt? Jeg har prøvet at kalde $kunde, men det virker ikke. Jeg
> forstår ikke helt, hvorfor. Altså, jeg kan få den til at finde
> e-mail-adressen fra feltet "kunde", hvis jeg beder den om det i starten
> af scriptet, men ikke længere nede.

Jeg kunne ikke lige finde på et intelligent svar til ovenstående, så du
får lige noget kode at tygge på i stedet :)

<html>
<body>
<form>
Email: <select name="email">
<?php
$emails = array('hejsa@server.dk', 'goddag@server.dk', 'farvel@server.dk',
'velbekomme@server.dk');
foreach ($emails as $email)
{
print "<option value='$email'";

// Tjek om dette er den valgte email
if ( $_REQUEST['email'] == $email )
{
print " selected='selected'";
}

print ">$email</option>\n";
}
?>
</select><br>
<?php
// Hvis $_REQUEST indeholder en email skal vi finde tilsvarende navn,
// adresse i databasen
if ( isset($_REQUEST['email']) )
{
$resultat = mysql_query("select navn, adresse from tabel where
email='{$_REQUEST['email']}'"); $kunde = mysql_fetch_array($resultat);
}
?>
Navn: <input type="text" value='<?php print $kunde['navn']; ?>'><br>
Adresse: <input type="text" value='<?php print $kunde['adresse']; ?>'><br>
<input type="submit">
</form>
</body>
</html>

Det giver muligvis nogle warnings og notices men ideen skulle være god
nok :)

Mvh.
/Thomas

Britt Malka (12-01-2004)
Kommentar
Fra : Britt Malka


Dato : 12-01-04 17:21

Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> skrev:

Tak for din hjælp

>Konsekvensen er at det er langsommere end hvis navn og adresse dukker op
>via noget clientside-scripting - det kræver et reload af siden.

Det kan jeg godt leve med. I dette tilfælde er det kun mig selv, der
skal bruge det til administration.

>>>så er det blot et spørgsmål om at tilføje 'selected="selected"' til
>>>den valgte emailadresse.
>>
>> Okay. Kan desværre ikke helt se, hvorfor.
>
>Prøv at køre følgende lille script - så kan du se pointen:

Ikke helt, desværre. Jeg mener, rullemenuen er helt fin, men jeg kan
ikke se forskel på den og så den, jeg lavede, uden select.

>Jeg kunne ikke lige finde på et intelligent svar til ovenstående, så du
>får lige noget kode at tygge på i stedet :)

Tak, der er vist til adskillige middage dér

Nu virker det i hvert fald.

Tak for hjælpen.

>Det giver muligvis nogle warnings og notices men ideen skulle være god
>nok :)

Ja, for den database havde jeg ikke lige

--
Britt Malka
Tilmeld dig nyhedsbrev og få gratis ebog om html - http://www.tips-og-tricks.com/ebog.html
(Svar ikke til denne e-mail-adresse. Mail slettes på serveren p.g.a. spam)

Thomas Lindgaard (12-01-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 12-01-04 18:33

On Mon, 12 Jan 2004 17:20:56 +0100, Britt Malka wrote:

>>Prøv at køre følgende lille script - så kan du se pointen:
>
> Ikke helt, desværre. Jeg mener, rullemenuen er helt fin, men jeg kan
> ikke se forskel på den og så den, jeg lavede, uden select.

Hvis du har følgende stump HTML

<select>
<option value="1">hejsa</option>
<option value="2">goddag</option>
</select>

så vil hejsa være valgt, da det er første element.

Hvis du nu tilføjer et tredie element

<option value="3" selected="selected">vælg mig!</option>

så vil det nye element blive vist.

Det er blot den pointe som bliver demonstreret af kodestumpen.

Mvh.
/Thomas

Britt Malka (13-01-2004)
Kommentar
Fra : Britt Malka


Dato : 13-01-04 22:56

Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> skrev:

>Det er blot den pointe som bliver demonstreret af kodestumpen.

Pling! Nu faldt ti-øren. Langsomt, men dog sikkert ...

Tak

--
Britt Malka
Tilmeld dig nyhedsbrev og få gratis ebog om html - http://www.tips-og-tricks.com/ebog.html
(Svar ikke til denne e-mail-adresse. Mail slettes på serveren p.g.a. spam)

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste