- Ariën -
10-10-2018 19:54
gewijzigd op 10-10-2018 19:55
En wat werkt er dan niet? En wat gebeurt er wel?
Een goede code-formatting met wat tabs zou het wel wat leesbaarder maken.
Nou hij de de pagina's wel zien in de dropdown maar als ik erop klik gebeurd niks.
Zal anders even kijken of ik dat weer zover krijg.
- Ariën -
10-10-2018 19:58
gewijzigd op 10-10-2018 19:58
Dat klopt. In JavaScript moet je de value uitlezen, en die gebruiken in een window.location.href = '...';
$sql = "SELECT COUNT(Id) AS total FROM metingen";
$q = $pdo->prepare($sql);
$q->execute(array($Id));
$data = $q->fetch(PDO::FETCH_ASSOC);
$total_pages = ceil($data["total"] / $results_per_page); // calculate total pages with results
echo '<select name="forma" >';
for ($i=1; $i<=$total_pages; $i++) { // print links forall pages
echo '<option value="index_metingen.php?page=".$i>'.$i.'</option>';
if ($i==$page) echo " class='curPage'";
};
echo '</select>';
[size=xsmall]
Toevoeging op 10/10/2018 19:59:25:[/size]
uh help?
Blijkbaar kun je gewoon een onclick aan een <option> hangen, dus dan zou je:
echo '<option onclick="location.href=\'index_metingen.php?page='.$i.'\'">'.$i.'</option>';
(volgens mij heb ik alle quotes nu goed ...)
Maar dit werkt (blijkbaar) alleen bij een muis-klik. Zie de SO link voor een complete aanzet naar een oplossing die ook met het keyboard werkt.
@Rob helaas doet die niks.
Ben je link aan het doorlezen , maar krijg ik tot op heden niks werkend mee.
- Ariën -
10-10-2018 20:29
gewijzigd op 10-10-2018 20:30
Hoe ziet je HTML eruit?
Het zou moeten werken volgens deze
JSfiddle
Maar persoonlijk zou ik dit direct in JavaScript opvangen, en niet in een inline event.
In jQuery wordt het dan:
$('select').change(function() {
window.location = $(this).val();
});
Ik heb deze code via JSfiddle getest wat ik in elkaar heb gestoken.
$sql = "SELECT COUNT(Id) AS total FROM metingen";
$q = $pdo->prepare($sql);
$q->execute(array($Id));
$data = $q->fetch(PDO::FETCH_ASSOC);
$total_pages = ceil($data["total"] / $results_per_page); // calculate total pages with results
echo '<select name="sample" onchange="javascript:handleSelect(this)">';
for ($i=1; $i<=$total_pages; $i++) {
echo '<option value="index_metingen.php?page='.$i.'">'.$i.'</option>';
if ($i==$page) echo " class='curPage'";
};
echo '</select>'; ?>
<script type="text/javascript">
function handleSelect(elm){
window.location = elm.value; /* .html if html file */
}
</script>
Dit werkt , gaat door naar de juiste pagina, het enigste is dat hij als hij de juiste pagina geladen heeft, terug springt in de dropdown naar 1.
- Ariën -
10-10-2018 20:38
gewijzigd op 10-10-2018 20:40
Dan moet je op een manier onthouden waar die dropdown op moet staan. Een $_GET waarde bijvoorbeeld.
ALs je niet inline je JavaScript wilt afhandelen, en geen jQuery wilt gebruiken. Dan kan je targetten op je ID. Veel netter. ;-)
<select id="redirect">
<option value="">Please select</option>
<option value="https://www.google.com">Google</option>
<option value="https://www.phphulp.nl">PHPhulp</option>
</select>
var selectEl = document.getElementById('redirect');
selectEl.onchange = function(){
window.location = this.value;
};
Nou ik ben al blij dat ik zover ben gekomen als dit :(