Gå til innhold

Rullgardinmeny med data fra mysql


Anbefalte innlegg

Jeg har laget et enkelt nyhets-script hvor man velger hvilken kategori artikkelen skal bli plassert i.

 

Der hvor man velger hvilken kategori artikkelen skal bli publisert i ønsker å ha en sånn rullgardinboks som henter de mulige valgene fra databasen. Hvordan gjør man det? Her er scriptet:

 

Klikk for å se/fjerne innholdet nedenfor
<html>

<head>

<title>Publicator</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

 

<link href="site2.css" rel="stylesheet" type="text/css">

</head>

 

<body text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" leftmargin="0" topmargin="0">

 

<table width="100%" border="0" cellpadding="4" bgcolor="#FFFFFF">

<tr>

<td width="743" class="logotekst"> </td>

<td class="logotekst"> </td>

</tr>

<tr>

<td class="logotekst"> </td>

<td width="231" class="tekst"><div align="right"> </div></td>

</tr>

</table>

 

<br>

<table width="100%" border="0" cellpadding="4">

<tr>

<td class="tittel">

 

 

<p class="tekst"><?php

 

// Connects to your Database

 

mysql_connect("localhost", "borgenskole", "marius02") or die(mysql_error());

mysql_select_db("borgenskole") or die(mysql_error());

 

{

Print '<h3>Legg til kontakt</h3>

<p>

<form action=';

echo $PHP_SELF;

Print '

method=post>

<table>

<tr><td><span class="admintekst">Tittel:</td><td><input type="text" name="tittel" /></td></tr>

<tr><td><span class="admintekst">Intro:</td><td><textarea name="intro" rows="10" cols="60"></textarea></td></tr>

<tr><td><span class="admintekst">Innhold:</td><td><textarea name="innhold" rows="18" cols="60"></textarea></td></tr>

<tr><td><span class="admintekst">Skrevet av:</td><td><input type="text" name="av" /></td></tr>

<tr><td><span class="admintekst">Kategori:</td><td><input type="text" name="type" /></td></tr>

<tr><td><span class="admintekst"></td><td><span class="admintekst"><p><p>Publisert</b></p></td>

<tr><td><span class="admintekst"></td><td><p><input type="radio" name="aktiv" value="" checked><span class="admintekst">Nei<input type="radio" name="aktiv" value="1"><span class="admintekst">Ja</td></p>

<tr><td><span class="admintekst"></td><td><span class="admintekst"><p><p>Forside</b></td></p>

<tr><td><span class="admintekst"></td><td><p><input type="radio" name="forside" value="" checked><span class="admintekst">Nei<input type="radio" name="forside" value="1"><span class="admintekst">Ja</p></td>

<tr><td><span class="admintekst"></td><td colspan="2" align="left"><br><input type="submit" value="Legg til"></td></tr>

<input type=hidden name=mode value=added>

</table>

</form> <p>';

}

 

//added mode adds the data

if ( $mode=="added")

{

mysql_query ("INSERT INTO cms (tittel, intro, innhold, av, type, aktiv, forside,dato) VALUES ('$tittel', '$intro', '$innhold', '$av', '$type', '$aktiv', '$forside',NOW())");

Print ' <meta http-equiv="refresh" content="0; url=index.php">';

}

 

?></p>

</td>

</tr>

</table>

<p class="tekst"> </p>

 

</body>

</html>

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet-rXRozPkg

Har du kategoriene (det du kaller 'type') lagret i en egen tabell, eller ligger alt i 'cms'-tabellen?

Lenke til kommentar

PHP
<?php

// koble til db og slikt her

$sql="SELECT kategori FROM kat_tab"$result=mysql_query($sql);

 

echo "<form action="mitt_script.php" method="post">";

echo "<select name="kategori">";

while ($row=mysql_fetch_row($result))

{

echo "<option value="".$row[0]."">".$row[0]."</option>";

}

echo "</select>";

echo "<input type="submit" value="Ok" name="submit">";

echo "</form>";

mysql_free_result($result);

?>

Noe slikt, må modifiseres litt for å fungere for deg, men burde gi deg en pekepinne i riktig rettning.

 

Edit: Svar på

Hei den koden du ga meg meg rullgardinmeny virket veldig bra  Jeg har laget en oppdateringsside for alle nyhetene og da vil jeg at kategorien jeg valgte når jeg lagde artikkelen skal komme opp først. Hvis du skjønner:)

 

Kan du si meg hvordan jeg skal få den valgte kategorien til å komme opp først i menyen??

 

På forhånd takk!

 

Du må legge til selected="selected" når det lagrede alternativet skal skrives ut. Det kan gjøres slik

PHP
<?php

//modifiser slik at den plukker ut kategori for riktig rad/nyhet osv

$kat=mysql_fetch_row(mysql_query("SELECT kategori FROM nyheter WHERE ett_eller_annet"));

 

$sql="SELECT kategori FROM kat_tab"$result=mysql_query($sql);

 

echo "<form action="mitt_script.php" method="post">";

echo "<select name="kategori">";

while ($row=mysql_fetch_row($result))

{

echo "<option value="".$row[0].""";

if ($kat[0]==$row[0]) echo " selected="selected"";

echo ">".$row[0]."</option>";

}

echo "</select>";

echo "<input type="submit" value="Ok" name="submit">";

echo "</form>";

mysql_free_result($result);

?>

EDIT: En del escape tegn har forsvunnet under redigering, så "" må erstates med \"" eller "\" etter behov.

Endret av crowly
Lenke til kommentar
// koble til db og slikt her
$sql="SELECT kategori FROM kat_tab"; $result=mysql_query($sql);

echo "<form action=\"mitt_script.php\" method=\"post\">\n";
echo "<select name=\"kategori\">\n";
while ($row=mysql_fetch_row($result))
{
  echo "<option value=\"".$row[0]."\">".$row[0]."</option>\n";
}
echo "</select>\n";
echo "<input type=\"submit\" value=\"Ok\" name=\"submit\">\n";
echo "</form>\n";
mysql_free_result($result);
?>

 

Noe slikt, må modifiseres litt for å fungere for deg, men burde gi deg en pekepinne i riktig rettning.

 

Edit: Svar på

Hei den koden du ga meg meg rullgardinmeny virket veldig bra  Jeg har laget en oppdateringsside for alle nyhetene og da vil jeg at kategorien jeg valgte når jeg lagde artikkelen skal komme opp først. Hvis du skjønner:)

 

Kan du si meg hvordan jeg skal få den valgte kategorien til å komme opp først i menyen??

 

På forhånd takk!

 

Du må legge til selected="selected" når det lagrede alternativet skal skrives ut. Det kan gjøres slik

//modifiser slik at den plukker ut kategori for riktig rad/nyhet osv
$kat=mysql_fetch_row(mysql_query("SELECT kategori FROM nyheter WHERE ett_eller_annet"));

$sql="SELECT kategori FROM kat_tab"; $result=mysql_query($sql);

echo "<form action=\"mitt_script.php\" method=\"post\">\n";
echo "<select name=\"kategori\">\n";
while ($row=mysql_fetch_row($result))
{
 echo "<option value=\"".$row[0]."\"";
 if ($kat[0]==$row[0]) echo " selected=\"selected\"";
 echo ">".$row[0]."</option>\n";
}
echo "</select>\n";
echo "<input type=\"submit\" value=\"Ok\" name=\"submit\">\n";
echo "</form>\n";
mysql_free_result($result);

8568723[/snapback]

Jeg får ikke løsningen til å virke. Her er scriptet. "Type" er raden i kolonnen.

Klikk for å se/fjerne innholdet nedenfor

<?

session_start();

if(!session_is_registered(myusername)){

header("location:main_login.php");

}

?>

<html>

<head>

<title>Publicator</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="JavaScript" type="text/javascript" src="openwysiwyg/wysiwyg.js"></script>

 

<link href="site2.css" rel="stylesheet" type="text/css">

</head>

 

<body bgcolor="#3399CC" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" leftmargin="0" topmargin="0">

 

<table width="100%" border="0" cellpadding="4" bgcolor="#006699">

<tr>

<td width="743" class="logotekst"> </td>

<td class="logotekst"> </td>

</tr>

<tr>

<td class="logotekst"></td>

<td width="231" class="tekst"><div align="right">[<a href="index.php" class="tekst">Til

hovedmeny </a>] [<a href="logout.php" class="tekst">Logg ut</a>]</div></td>

</tr>

</table>

 

<br>

<table width="100%" border="0" cellpadding="4">

<tr>

<td class="tittel">

 

 

<p class="tekst"><?php

 

// Connects to your Database

 

mysql_connect("localhost", "****", "***") or die(mysql_error());

mysql_select_db("**") or die(mysql_error());

 

//Remove mode removes data for a given ID

if ( $mode=="show")

{

 

$result = mysql_query("SELECT navn, adresse, telefon, mobil, epost FROM foreninger where id=$id");

 

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

printf("<font color=red>Navn: %s</font><br>Adresse: %s<br>Telefon: %s<br>Mobil: %s<br>E-postadresse: %s<p>", $row["navn"], $row["adresse"], $row["telefon"], $row["mobil"], $row["epost"]);

}

 

mysql_free_result($result);

 

}

 

//add mode adds a form

if ( $mode=="add")

{

Print '<h3>Endre artikkel</h3>

<p>

<form action=';

echo $PHP_SELF;

Print '

method=post>

<table>

<tr><td>Navn:</td><td><input type="text" name="navn" /></td></tr>

<tr><td>Adresse:</td><td><input type="text" name="adresse" /></td></tr>

<tr><td>Telefon:</td><td><input type="text" name="telefon" /></td></tr>

<tr><td>Mobil:</td><td><input type="text" name="mobil" /></td></tr>

<tr><td>E-post:</td><td><input type="text" name="epost" /></td></tr>

<tr><td colspan="2" align="center"><br><input type="submit" value="Send"> <input type="reset" value="Tilbakestill" name="B2"> <a href="slett.php" title=Avbryt prosess>Tilbake</a></td></tr>

<input type=hidden name=mode value=added>

</table>

</form> <p>';

}

 

//added mode adds the data

if ( $mode=="added")

{

mysql_query ("INSERT INTO foreninger (navn, adresse, telefon, mobil, epost) VALUES ('$navn', '$adresse', '$telefon', '$mobil', '$epost')");

}

 

{

Print '<h3>Endre artikkel</h3>

<p>

<form action=';

echo $PHP_SELF;

Print '

method=post>

<table>';

$result = mysql_query("SELECT tittel, intro, innhold, av, type, aktiv, forside FROM cms where id=$id");

 

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

printf("<tr><td><span class='admintekst'>Tittel:</td><td><input type='text' name='tittel' value='%s' /></td></tr>", $row["tittel"]);

print ' <p>';

printf("<tr><td><span class='admintekst'>Ingress:</td><td><textarea name='intro' rows='10' cols='60'>%s</textarea><script language='JavaScript'>generate_wysiwyg('intro')</script></td></tr>", $row["intro"]);

print ' <p>';

printf("<tr><td><span class='admintekst'>Innhold:</td><td><textarea name='innhold' rows='10' cols='60'>%s</textarea><script language='JavaScript'>generate_wysiwyg('innhold')</script></td></tr>", $row["innhold"]);

print ' <p>';

printf("<tr><td><span class='admintekst'>Av:</td><td><input type='text' name='av' value='%s' /></td></tr>", $row["av"]);

print ' <p>';

$sql="SELECT type FROM cms1"; $result=mysql_query($sql);

 

echo "<select name=\"type\">\n";

while ($row=mysql_fetch_row($result))

{

echo "<option value=\"".$row[0]."\"";

if ($type[0]==$row[0]) echo " selected=\"selected\"";

echo ">".$row[0]."</option>\n";

}

echo "</select>\n";

print ' <p>';

printf("<tr><td><span class='admintekst'>Publisert:</td><td><input type='text' name='aktiv' value='%s' size='3' /><span class='admintekst'> Skriv 1 for å publisere, eller la stå åpen</td></tr>", $row["aktiv"]);

print ' <p>';

printf("<tr><td><span class='admintekst'>Forside:</td><td><input type='text' name='forside' value='%s' size='3' /> <span class='admintekst'> Skriv 1 for å publisere på forside, eller la stå åpen</td></tr>", $row["forside"]);

print ' <p>';

Print ' <tr><td colspan="2" align="left"><br><input type="submit" value="Endre"></td></tr></td></tr>

<input type=hidden name=mode value=edited>

<input type=hidden name=id value=';

Print $id;

print '>

</form> <p>';

}

 

mysql_free_result($result);

 

}

 

//edited mode updates the data for a given ID

if ( $mode=="edited")

{

mysql_query ("UPDATE cms SET tittel = '$tittel', intro = '$intro', innhold = '$innhold', av = '$av', type = '$type', aktiv = '$aktiv', forside = '$forside' WHERE id = $id");

Print ' <meta http-equiv="refresh" content="0; url=index.php">';

}

 

?>

</p>

</td>

</tr>

</table>

<p class="tekst"> </p>

 

</body>

</html>

Endret av mariusmk
Lenke til kommentar

Du har ikke definert variablenen $type, du trenger noen få endringer så skal dette fungere ganske greit

// ....
$result = mysql_query("SELECT tittel, intro, innhold, av, type, aktiv, forside FROM cms where id=$id");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
printf("<tr><td><span class='admintekst'>Tittel:</td><td><input type='text' name='tittel' value='%s' /></td></tr>", $row["tittel"]);
print ' <p>';
printf("<tr><td><span class='admintekst'>Ingress:</td><td><textarea name='intro' rows='10' cols='60'>%s</textarea><script language='JavaScript'>generate_wysiwyg('intro')</script></td></tr>", $row["intro"]);
print ' <p>';
printf("<tr><td><span class='admintekst'>Innhold:</td><td><textarea name='innhold' rows='10' cols='60'>%s</textarea><script language='JavaScript'>generate_wysiwyg('innhold')</script></td></tr>", $row["innhold"]);
print ' <p>';
printf("<tr><td><span class='admintekst'>Av:</td><td><input type='text' name='av' value='%s' /></td></tr>", $row["av"]);
print ' <p>';


//endret $result til $rresult, greit og ikke bruke samme variable når man bruker flere pekere
$sql="SELECT type FROM cms1"; $rresult=mysql_query($sql);

echo "<select name=\"type\">";

//endret $row til $rrow siden du allerede bruker $row, for å unngå konflikt/overskrivning
while ($rrow=mysql_fetch_row($rresult))
{
echo "<option value=\"".$rrow[0]."\"";
if ($row['type']==$rrow[0]) echo " selected=\"selected\"";
echo ">".$rrow[0]."</option>";
}
echo "</select>";

// ...
mysql_free_result($rresult);
//....

 

Tror dette skal fungere. :)

 

Edit: Satt på noen manglende \

Endret av crowly
Lenke til kommentar
Du har ikke definert variablenen $type, du trenger noen få endringer så skal dette fungere ganske greit

// ....
$result = mysql_query("SELECT tittel, intro, innhold, av, type, aktiv, forside FROM cms where id=$id");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
printf("<tr><td><span class='admintekst'>Tittel:</td><td><input type='text' name='tittel' value='%s' /></td></tr>", $row["tittel"]);
print ' <p>';
printf("<tr><td><span class='admintekst'>Ingress:</td><td><textarea name='intro' rows='10' cols='60'>%s</textarea><script language='JavaScript'>generate_wysiwyg('intro')</script></td></tr>", $row["intro"]);
print ' <p>';
printf("<tr><td><span class='admintekst'>Innhold:</td><td><textarea name='innhold' rows='10' cols='60'>%s</textarea><script language='JavaScript'>generate_wysiwyg('innhold')</script></td></tr>", $row["innhold"]);
print ' <p>';
printf("<tr><td><span class='admintekst'>Av:</td><td><input type='text' name='av' value='%s' /></td></tr>", $row["av"]);
print ' <p>';


//endret $result til $rresult, greit og ikke bruke samme variable når man bruker flere pekere
$sql="SELECT type FROM cms1"; $rresult=mysql_query($sql);

echo "<select name="type">";

//endret $row til $rrow siden du allerede bruker $row, for å unngå konflikt/overskrivning
while ($rrow=mysql_fetch_row($rresult))
{
echo "<option value=\"".$rrow[0]."\"";
if ($row['type']==$rrow[0]) echo " selected="selected"";
echo ">".$rrow[0]."</option>";
}
echo "</select>";

// ...
mysql_free_result($rresult);
//....

 

Tror dette skal fungere.  :)

8576920[/snapback]

 

Tusen takk :thumbup: Luket ut noen småfeil, som " istede for ' noen steder :)

Endret av mariusmk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...