Hej alle,
Jeg har to select list på min side, hvor jeg i den første har information fra databasen.
I den anden select box, skal jeg have information, baseret på hvad der er valgt i den første select box.
Så jeg skal lave noget med: onChange...i den første, og oprette et xmlhttprequest, da siden ikke bliver submitted, men blot den ene box der skal opdatere sig afhængig af hvad der er valgt.
Jeg har ikke brugt ajax før, men jeg har dette som udgangspunkt, som ikke fungerer... :-)
Første select box;- <?php // Her tages position ud fra DB, til brug i drop down liste
- $sqlCommand="SELECT id, linknavn, pos FROM subjects WHERE id > 1 ORDER BY pos ASC";
- $result = mysqli_query($connection, $sqlCommand);
- ?>
- <select name="position" onchange="showUser(this.value)">
- <option value="<?php echo $til_subject; ?>"><?php echo $current_subject; ?></option>
- <?php
- while($row=mysqli_fetch_array($result)){
- echo '<option value=' . $row['id'] . '>' . $row['linknavn'] . '</option>';
- }
- echo "</select>";
- ?>
Min anden select box, kommer så lige efter, og jeg har skrevet de informationer der skal hentes fra DB, men jeg ved ikke om de overhovedet skal stå der, eller om de skal stå i JS.filen længere nede?
$subjectid, er id fra den første select box, der bruges til at finde de rigtige positioner med i den anden..- <?php
- echo '<select name="page_position">';
- $sql = "SELECT id, pos FROM pages WHERE subjectid = $subjectid";
- $result_from_first_select_list = mysqli_query($connection, $sql);
- while($row = mysqli_fetch_array($result_from_first_select_list)){
- echo '<option value=' . $row['id'] . '>' . $row['linknavn'] . '</option>';
- }
- echo "</select>";
- ?>
Jeg har forsøgt at oprette en js fil der ser sådan her ud, men jeg er lidt på herrens mark, da jeg ikke har benyttet AJAX før:
- function MakeRequestObject(){
- var xmlhttp=false;
- try {
- xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
- } catch (e) {
- try {
- xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
- } catch (E) {
- xmlhttp = false;
- }
- }
- if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
- xmlhttp = new XMLHttpRequest();
- }
- return xmlhttp;
- }
-
- function showUser(cat){
- var xmlhttp=makeRequestObject();
- xmlhttp.open('GET', 'rediger.php?&page_position='+cat, true);
- xmlhttp.onreadystatechange=function(){
- if(xmlhttp.readyState==4 && xmlhttp.status==200){
- var content = xmlhttp.responseText;
- if ( content ) {
- document.getElementByTagName('page_position').innerHTML = content
- }
- }
- }
- xmlhttp.send()
- }
Er dette korrekt syntax?xmlhttp.open('GET', 'rediger.php?&page_position='+cat, true);document.getElementByTagName('page_position').innerHTML = contentxmlhttp.send()Og hvor skal jeg skrive database query, til den anden select box?Der hvor den står nu?
Inde i js.scriptet?
Et helt 3. sted?
Jeg håber at høre fra en shark herinde, der kan hjælpe mig pårette vej!
Da det er det sidste jeg lige mangler før min backend virker helt :-)
Jan