/ 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
Valg via form select, efter valg skal det ~
Fra : j p


Dato : 04-12-10 10:17

Hej

Herunder er min kode. Jeg vi gerne have at brugeren skal vælge
fra select listen og efter valg skal det valgte vises i listen.

mvh

Don


<form name="form1" action="index.php">

<?php

mysql_select_db($database_natur, $natur);

$query = "SELECT katagorier FROM rubrik_kat";
$result = mysql_query($query);

print "<SELECT onChange='submit()' name=item>";
while ($line = mysql_fetch_array($result))
{
foreach ($line as $value)
{
print "<OPTION value='$value'";
}
print ">$value</OPTION>";
}
print "</SELECT>";
?></form>



--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
scootergrisen (04-12-2010)
Kommentar
Fra : scootergrisen


Dato : 04-12-10 12:25

Bruge <option value="mis" selected> på den du vil have valgt.

Tror det er sådan her...

foreach ($line as $value){

if($_POST['item']) == $value){

print '<OPTION value="$value"' selected>;

}else{

print '<OPTION value="$value"'>;

}

}

j p (04-12-2010)
Kommentar
Fra : j p


Dato : 04-12-10 16:03

scootergrisen wrote in dk.edb.internet.webdesign.serverside.php:
> Bruge <option value="mis" selected> på den du vil have valgt.
>
> Tror det er sådan her...
>
> foreach ($line as $value){
>
> if($_POST['item']) == $value){
>
> print '<OPTION value="$value"' selected>;
>
> }else{
>
> print '<OPTION value="$value"'>;
>
> }
>
> }
Super, tak, det prøver jeg :)

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

j p (04-12-2010)
Kommentar
Fra : j p


Dato : 04-12-10 18:10

scootergrisen wrote in dk.edb.internet.webdesign.serverside.php:
> Bruge <option value="mis" selected> på den du vil have valgt.
>
> Tror det er sådan her...
>
> foreach ($line as $value){
>
> if($_POST['item']) == $value){
>
> print '<OPTION value="$value"' selected>;
>
> }else{
>
> print '<OPTION value="$value"'>;
>
> }
>
> }

Nu her jeg følgende:

<?php


mysql_select_db($database_natur, $natur);

$query = "SELECT katagorier FROM rubrik_kat";
$result = mysql_query($query);

print "<SELECT onChange='submit()' name=id>";
while ($line = mysql_fetch_array($result))
{
foreach ($line as $value){

if($id == $value){
print "<OPTION value='$value' selected>$value</OPTION>";
}else{
print "<OPTION value='$value'>$value</OPTION>";
}
}
}
print "</SELECT>";
?>

men nu forekommer hver post 2 gange i listen ??? hvorfor ?

mvh


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

scootergrisen (05-12-2010)
Kommentar
Fra : scootergrisen


Dato : 05-12-10 06:51

Du har ikke nogen værdi i $id.

Du skal skrive value="tekst" og ikke value='tekst'
Altså med " og ikke '

Prøv :
----------------------------------------

<?php

mysql_select_db($database_natur, $natur);

$query = "SELECT katagorier FROM rubrik_kat";
$result = mysql_query($query);

print '<SELECT onChange="submit();" name="id">';

while ($line = mysql_fetch_array($result)){

foreach ($line as $value){

if($_POST['id'] == $value){

print '<OPTION value="$value" selected>$value</OPTION>';

}else{

print '<OPTION value="$value">$value</OPTION>';

}

}

}

print "</SELECT>";

?>

-------------------------------------------------


j p (05-12-2010)
Kommentar
Fra : j p


Dato : 05-12-10 08:51

scootergrisen wrote in dk.edb.internet.webdesign.serverside.php:
> Du har ikke nogen værdi i $id.
>
> Du skal skrive value="tekst" og ikke value='tekst'
> Altså med " og ikke '
>
> Prøv :
> ----------------------------------------
>
> <?php
>
> mysql_select_db($database_natur, $natur);
>
> $query = "SELECT katagorier FROM rubrik_kat";
> $result = mysql_query($query);
>
> print '<SELECT onChange="submit();" name="id">';
>
> while ($line = mysql_fetch_array($result)){
>
> foreach ($line as $value){
>
> if($_POST['id'] == $value){
>
> print '<OPTION value="$value" selected>$value</OPTION>';
>
> }else{
>
> print '<OPTION value="$value">$value</OPTION>';
>
> }
>
> }
>
> }
>
> print "</SELECT>";
>
> ?>
>
> -------------------------------------------------
>
$id er ikke tom.

Men bruger jeg koden nu, skriver den kun $value i listen og intet
andet.

Hjælp

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

scootergrisen (05-12-2010)
Kommentar
Fra : scootergrisen


Dato : 05-12-10 11:49

Ok det var mig der skrev noget forkert. Men hvis HTML koden skal være
rigtigt skal du i hvert fald skrive value="" og ikke value='' det var
bare det jeg ville sige....

Du kan skrive sådan her :
--------------------------------------------
<?php

if($_POST['id'] == $value){

print '<OPTION value="' . $value . '" selected>$value</OPTION>';

}else{

print '<OPTION value="' . $value . '">' . $value . '</OPTION>';

}

?>


Eller såden her :
-----------------------------------------
<?php

if($_POST['id'] == $value){

print "<OPTION value=\"$value\" selected>$value</OPTION>";

}else{

print "<OPTION value=\"$value\">$value</OPTION>";

}

?>


Alt efter hvad du syns er lettest at læse.

Prøv og kør denne kode :
-------------------------------------
<?php

$line = array('sfsdfs', 'sdfsdfdsfsdf', 'wwww', 'ddfds', 'frrweer');

print '<SELECT onChange="submit();" name="id">';

foreach ($line as $value){

if($_POST['id'] == $value){

print "<OPTION value=\"$value\" selected>$value</OPTION>";

}else{

print "<OPTION value=\"$value\">$value</OPTION>";

}

}

print "</SELECT>";

?>

Det skulle i hvertfald gerne virke så det må være noget andet i koden
der gør at den skrive 2 gange.

Men jeg er ikke så god til det med mysql men tror enten at din data er
dobbelt i databasen eller også er det din while() det gør det 2 gange.

Leif Neland (05-12-2010)
Kommentar
Fra : Leif Neland


Dato : 05-12-10 12:30

Den 05-12-2010 11:48, scootergrisen skrev:
> Ok det var mig der skrev noget forkert. Men hvis HTML koden skal være
> rigtigt skal du i hvert fald skrive value="" og ikke value='' det var
> bare det jeg ville sige....

Det er ligegyldigt for valid html om der står value="" eller value='',
men det skal selvfølgeligt skrives rigtigt i php i forhold til hvilket
tegn man starter sin print med.


> Det skulle i hvertfald gerne virke så det må være noget andet i koden
> der gør at den skrive 2 gange.
>
Jeg ser ikke hvor det bliver skrevet dobbelt...

> Men jeg er ikke så god til det med mysql men tror enten at din data er
> dobbelt i databasen eller også er det din while() det gør det 2 gange.

Men:
$query = "SELECT katagorier FROM rubrik_kat";
$result = mysql_query($query);
while ($line = mysql_fetch_array($result)){

foreach ($line as $value){

if($_POST['id'] == $value){

Er ikke så smart, grunden til dobbelt er, at mysql_fetch_array
returnerer værdierne i et array med både numerisk og tekst-index.

SELECT id,katagorier FROM rubrik_kat ville give
print_r($line):
array {
[0] => 123;
[1] => "Heste";
[id] => 123;
[katagorier] => "Heste";
}
Så du skrotter din foreach, og indeni while'en skal du bare bruge
if($_POST['id'] == $line['katagorier'])

I øvrigt, så heder det katEgorier, ikke katagori.
Men det hedder et katAlog

Leif

--
Bevar P2, luk P3, der er nok P3'er i forvejen.

j p (05-12-2010)
Kommentar
Fra : j p


Dato : 05-12-10 23:58

Leif Neland wrote in dk.edb.internet.webdesign.serverside.php:
> Den 05-12-2010 11:48, scootergrisen skrev:
> > Ok det var mig der skrev noget forkert. Men hvis HTML koden skal være
> > rigtigt skal du i hvert fald skrive value="" og ikke value='' det var
> > bare det jeg ville sige....
>
> Det er ligegyldigt for valid html om der står value="" eller value='',
> men det skal selvfølgeligt skrives rigtigt i php i forhold til hvilket
> tegn man starter sin print med.
>
>
> > Det skulle i hvertfald gerne virke så det må være noget andet i koden
> > der gør at den skrive 2 gange.
> >
> Jeg ser ikke hvor det bliver skrevet dobbelt...
>
> > Men jeg er ikke så god til det med mysql men tror enten at din data er
> > dobbelt i databasen eller også er det din while() det gør det 2 gange.
>
> Men:
> $query = "SELECT katagorier FROM rubrik_kat";
> $result = mysql_query($query);
> while ($line = mysql_fetch_array($result)){
>
> foreach ($line as $value){
>
> if($_POST['id'] == $value){
>
> Er ikke så smart, grunden til dobbelt er, at mysql_fetch_array
> returnerer værdierne i et array med både numerisk og tekst-index.
>
> SELECT id,katagorier FROM rubrik_kat ville give
> print_r($line):
> array {
> [0] => 123;
> [1] => "Heste";
> [id] => 123;
> [katagorier] => "Heste";
> }
> Så du skrotter din foreach, og indeni while'en skal du bare bruge
> if($_POST['id'] == $line['katagorier'])
>
> I øvrigt, så heder det katEgorier, ikke katagori.
> Men det hedder et katAlog
>
> Leif
>
> --
> Bevar P2, luk P3, der er nok P3'er i forvejen.

Du er nok inde på noget rigtigt, din kode brugt på siden giver ingen
ændring...blot vises intet i listen nu

mvh
Don

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

j p (06-12-2010)
Kommentar
Fra : j p


Dato : 06-12-10 09:58

Løsningen blev: (tak for hjælpen)

<?php

mysql_select_db($database_natur, $natur);

$query = "SELECT katagorier FROM rubrik_kat";
$result = mysql_query($query);


print "<SELECT onChange='submit()' name=id>";
while ($line = mysql_fetch_row($result))
{

if ($id == $line[0]){
print "<OPTION value='$line[0]' selected>$line[0]</OPTION>";
}else{
print "<OPTION value='$line[0]'>$line[0]</OPTION>";
}
}
print "</SELECT>";


?>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177429
Tips : 31962
Nyheder : 719565
Indlæg : 6407948
Brugere : 218878

Månedens bedste
Årets bedste
Sidste års bedste