Dropdown menu met automatisch doorlinken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ryflex Razor

Ryflex Razor

06/10/2010 19:42:16
Quote Anchor link
Hey allemaal,

Ik heb een vraagje ik zit met het volgende script maar die werkt niet het is de bedoeling dat de geselecteerde optie als POST word doorgegeven aan de volgende pagina

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
    require_once('config.php');

$member_ID                  = $_SESSION['SESS_MEMBER_ID'];
$city_ID                    = $_SESSION['SESS_CITY_ID'];
$global_dbh                 = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
                              or die("Could not connect to database");
                              mysql_select_db(DB_DATABASE, $global_dbh)
                              or die("Could not select database");
?>

<html>

<head>
<title>Left-Frame</title>
<link href="loginmodule.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Menu:</h1>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
if(!empty($_POST['Page'])){
    session_start();
    $_SESSION['VAR'] = $_POST['session_var'];
    header("Location: ".$_POST['Page']);
    exit;
}

$city_query                 = "SELECT Name
                               FROM city
                               WHERE member_ID = '$member_ID'"
;
$city_result                = mysql_query($city_query)
                              or die(mysql_error());
echo '<FORM NAME="dropdown" ACTION="link" METHOD="post">';
echo '<input name="session_var" type="hidden" value="">';
echo '<select name="dropdown" onchange="dropdown.submit();">';
while($rows = mysql_fetch_assoc($city_result))
{

    echo '<option value="' . $rows['Name'] . '">'  . $rows['Name'] . '</option><br>';
    echo $rows['Name'] . '<BR>';
}

echo '</select>';
echo '</FORM>';
if(!empty($_GET['debug'])){
    echo "<PRE>\$_SESSION['VAR'] = ";
    session_start();
    var_dump($_SESSION['VAR']);
    echo "</PRE>";
}

?>

</body>

</html>

Thnx Ryflex
 
PHP hulp

PHP hulp

28/03/2024 20:35:29
 
Lauren Zonneveld

Lauren Zonneveld

06/10/2010 20:08:24
Quote Anchor link
Je form en select hebben dezelfde naam, ik denk dat dat jouw probleem is. Wijzig de naam van je select veld of gebruik this.form.submit();
 
Ryflex Razor

Ryflex Razor

06/10/2010 20:22:10
Quote Anchor link
@Lauren

Dank je voor je snelle reactie.
Ik heb de naam van de select gewijzigd naar dropdownselect. Maar nu vraag ik me af wat dan de $_POST variabele word... Ik heb al het nodige geprobeerd maar het werkt niet helemaal zoals het hoort.

Thnx Ryflex
 
Lauren Zonneveld

Lauren Zonneveld

06/10/2010 20:56:55
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
while($rows = mysql_fetch_assoc($city_result))
{

    echo '<option value="' . $rows['Name'] . '">'  . $rows['Name'] . '</option><br>';
    echo $rows['Name'] . '<BR>';
}

?>

Tekst en line-breaks tussen je opties door slaat zover ik weer nergens op. Maak daar in elk geval het volgende van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
while($rows = mysql_fetch_assoc($city_result))
{

    echo '<option value="' . $rows['Name'] . '">'  . $rows['Name'] . '</option>';
}

?>

Verder is action = "link" vreemd, ook bij het gebruik van MOD_REWRITE zou ik absolute paths gebruiken.

Als je formulier dan correct verzonden word zou $_POST['dropdownselect'] de waarde van de geselecteerde optie moeten bevatten. Je kunt op de bestemmingspagina alle geposte gegevens natuurlijk bekijken met print_array($_POST). Controleer anders of $rows['name'] überhaupt een waarde bevat.
 
Ryflex Razor

Ryflex Razor

06/10/2010 21:04:10
Quote Anchor link
@ Lauren

Thnx weer voor de snelle reactie.
De action ="link" geeft alleen aan dat daar normaal een link staat die ik er niet op wil zetten ivm site in aanbouw.
De extra tekst was een testje om de waardes te controleren in de $rows['Name'] variable.
De $rows['Name'] bevat een goede waarde die word weergegeven in de dropdown dus in zoverre gaat het goed.
Na het openen van de doelpagina word de $_POST niet doorgegeven en word deze gezien als leeg.
De functie print_array($_POST); geeft een error aan die oproept naar een undefined function.

Thnx Ryflex
 
Lauren Zonneveld

Lauren Zonneveld

06/10/2010 21:08:49
Quote Anchor link
Ai, dat moet natuurlijk zijn print_r($_POST)...
 
Ryflex Razor

Ryflex Razor

06/10/2010 21:38:06
Quote Anchor link
@ Lauren

Hartstikke bedankt,
Die print_r onthou ik ff is inderdaad makkelijk om te zien wat er in de post staat.
overigens werkt de functie nu super.

Gr Ryflex
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.