Hallo,

Ik heb de volgende dropdown list :

<?php

function setNumberPerPage($id, $serv_page) {

$options = array(

6 => 6,
12 => 12,
18 => 18,
24 => 24,
30 => 30
);

echo"<form id='select_form' name = 'form' action = '$serv_page' method = 'GET'>
<label for = 'amount' id = 'label'>Aantal: </label>
<select id='$id' name='amount' onchange='setAmount()'>";

foreach($options as $key => $value) {

$selected = $_GET['amount'] == $key ? 'selected' : '';
if($key == 24 && !$_GET['amount'])
$selected = 'selected';

echo"<option value = '".$key."' ".$selected.">".$value."</option>";
}

echo "</select></form>";
}
?>

met de bijbehorende javascript onchange functie :

function setAmount(test){

alert(test);
}

Als ik een getal meegeef dan werkt de functie maar zodra ik een string meegeef gebeurt er niets. Hoe kan ik dit oplossen ? En met javascript krijg ik geen foutmeldingen ?
Hallo Farid,

Ten eerste:
Ik vind je code vrij lastig om te lezen.

Ten tweede:
Volgens mij moet je bij de onchange nog de value meesturen, dus:
regel 16 - <select id='$id' name='amount' onchange='setAmount(this.value)'>";

Hoop dat je hier wat verder mee kunt.
als ik bijvoorbeeld dit doe : setAmount($serv_page) gebeurt er nix. Als ik er een / voor zet en een / er achter zet. Doet de alert het wel maar dan krijg ik bijvoorbeeld: /nwspul.php/. Hoe kan ik het werkend krijgen zonder de slashes ?
De slashes gebruik je om te escapen.

<?php echo 'zo gebruik je toch nog dezelfde \'quotes\' als die je string omsluiten'; ?>

Begin in php als je HTML gaar genereren met echo '...'; (single quotes dus). Je hebt dan geen problemen om HTML tags te schrijven: <?php echo '<a href="#">klik</a>'?>

Je komt dan echter soms in de problemen met javascript:

- in php schrijf je de string tussen '...'.
- in de HTML tags schrijf je de waardes tussen "..."
- in één tag moet je deze waarde schrijven:

setAmount('test')

echter heb je alle twee de quotes al gebruikt dus moet je wel gaan escapen:

setAmount(\'test\')


Ik heb je code wat "verbeterd"
<?php

echo '<form id="select_form" name="form" action="'.$serv_page.'" method="GET">
<label for="amount" id="label">Aantal: </label>
<select id="'.$id.'" name="amount" onchange="setAmount(\'test\')">';

?>
TIP: Om de code duidelijker te maken en om ook vaak ondersteuning te van je IDE/Editor te krijgen is het handiger om blockstyle php te gebruiken.

LET OP! Shortags van php moeten aanstaan hiervoor


<?php

// hier code van php

?>
 <form id="select_form" name="form" action="<?= $serv_page ?>" method="GET">
        <label for="amount" id="label">Aantal: </label>
        <select id="<?= $id ?>" name="amount" onchange="setAmount('test')">

<?php
// En hier nog meer php code
?>

Reageren