Avatar billede dejbjerg Nybegynder
13. januar 2004 - 07:01 Der er 3 kommentarer og
1 løsning

Linkede comboboxe i form?

Jeg har 2 comboboxe i min indtast_links form.

Den første (se nedenstående kodestump) henter kategorier, så man kan vælge hvilken kategori linket skal høre under.

Den anden skulle gerne gøre det muligt at vælge hvilken overskrift linket skal stå under. Men den skal kun vise de overskrifter, som passer med den valgte link-kategori.

Kan det gøres uden javascript?

Hvis det kun kan gøres i javascript, hvordan får jeg det indkapslet i en PHP funktion, som kan placeres andetsteds og includes?

Har rodet lidt med onchange="" event i <select> og javascript, men kunne ikke rigtigt få det til at opføre sig ordentligt.

Ville allerhelst have det helt uden javascript.

<strong>Vælg link kategori: </strong><select name="link_cat_id">
<?php
while ($cat = mysql_fetch_array($sql))
{
  echo "<option value='$cat[cat_id]'>$cat[cat_navn]</option>";
}
echo "</select><br>";
?>
Avatar billede dejbjerg Nybegynder
13. januar 2004 - 12:41 #1
k, det kan nok ikke gøres uden java (så vidt jeg kan læse mig til)

Følgende virker, men man skulle gerne have mere end 1 forsøg.

<?php $action = ($link_cat_id)? "action=\"gem_links.php\"" : "action=\"".$_SERVER['PHP_SELF']."\" "; ?>
<h2>Indtast links</h2>
<form <?php echo $action ?> method="post">
<strong>Vælg link kategori:  </strong><select onChange="this.form.submit()" name="link_cat_id">
<?php
while ($cat = mysql_fetch_array($sql))
{
    echo "<option value='$cat[cat_id]'>$cat[cat_navn]</option>";
}
echo "</select><br>";

if($link_cat_id)
{
?>
  <input type="text" name ="test">
<?php
}
?>

Kom nu, giv mig en hånd, kan ikke bruge hele dagen på det her.
Avatar billede dejbjerg Nybegynder
13. januar 2004 - 12:47 #2
Hvis man skifter kategori igen submitter den formen til gem_links.php
Dette skulle gerne kun ske hvis man trykker på den rigtige submit knap.
Kan ikke regne den ud.
Avatar billede dejbjerg Nybegynder
14. januar 2004 - 16:20 #3
LUKKER
Avatar billede dejbjerg Nybegynder
19. januar 2004 - 21:42 #4
<html>
<head>
</head>
<body>
<?php
$server    = "localhost";   
$brugernavn = "test";   
$password  = "";     
$db_navn    = "test"; 
             
mysql_connect($server, $brugernavn, $password)
or die( "Unable to connect\n". mysql_error() );

mysql_select_db("$db_navn")
or die("Unable to select db ".mysql_error()."\n");
?>

<form name="test_form" action="test_gem_link.php" method="post">
<select name="link_gruppe_id" onChange="myfunc_reload()">
<?php //hent options
$gruppe_sql = mysql_query("SELECT * FROM gruppe");
while ($gruppe = mysql_fetch_array($gruppe_sql)){
    $selected = ($id && $gruppe['gruppe_id'] == $id)? "SELECTED" : "";
    echo '<option value ="'.$gruppe['gruppe_id'].'"'.$selected.'>'.$gruppe['gruppe_navn'].'</option>'."\n";
} // end while
?>
</select><br>
<select name="link_kategori_id">
<?php //hent options
$kategori_sql = mysql_query("SELECT * FROM kategori WHERE kategori_gruppe_id = $id");//?id= i url
while ($kategori = mysql_fetch_array($kategori_sql)){
    echo '<option value ="'.$kategori['kategori_id'].'">'.$kategori['kategori_navn'].'</option>'."\n";
} // end while
?>
</select><br>
<strong>Link URL: </strong><input type="text" name="link_url" size="60" maxlength="256"><br>
<input type="submit" name="submit" value="Tilføj link">
</form>

<script type="text/javascript">
function myfunc_reload()
{
var valgt_id = document.test_form.link_gruppe_id.options[document.test_form.link_gruppe_id.selectedIndex].value
var this_page = <?php echo '"'.$_SERVER['PHP_SELF'].'"'; ?>;
location = this_page + "?id=" + valgt_id
}
</script>

</body>
</html>
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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