Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.
|
|
PHP Quellcode |
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 |
$id = isset($_REQUEST['id']) ? $_REQUEST['id'] : 0; // (1) example array with four main categories for($i=0; $i<4; $i++) { // four subcategories each for($j=($i*10); $j<($i*10)+3; $j++) { $idx = $j+1; $data[$i][$j] = array( 'id' => $idx, 'text' => sprintf('cat %d (parent:%d)', $idx, $i), ); // with three childs eiter for($k=($idx*10); $k<($idx*10)+3; $k++) { $data[$idx][$k] = array( 'id' => $k, 'text' => sprintf('subcat %d (parent:%d)', $k, $idx), ); } } } // access the childs with its parent index $return = $data[$id]; echo json_encode($return); |
|
|
PHP Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php $Child_id_Array=array("0"); $sql = "SELECT unterkklasse_id FROM klasse_zu_unterklasse WHERE parent_id = :id"; $ERG = @mysql_query($sql); for($f=0;$f<mysql_num_rows($ERG);$f++){ $Child_id_Array[$f]= @mysql_result($ERG,$f,'Knd_id'); } $child_names_array=array("0"); for($g=0;$g<count($Child_id_Array);$g++) { $Names_SQL = 'SELECT klassen_id, klassen_name, klassen_beschreibung FROM klassentabelle WHERE klassen_id='$Child_id_Array[$g]' AND klassen_Creator = '.$_SESSION['client_id'].') OR (klassen_public = 1)'; $child_names_array[$g]= = @mysql_query($Names_SQL); } $return = $child_names_array->fetchAll(); echo json_encode($return) ?> |
|
|
JavaScript Code |
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
var url = "ajax/"; function sendRequest(domref, target) { // skip if no target specified if(!target) return false; // save reference to next target if(domref) domref.followup = target; var req; try { req = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert( "Ihr Webbrowser unterstuetzt leider kein Ajax!" ); } req.onreadystatechange = function() { if ((req.readyState == 4) && (req.status == 200)) { // merge empty line with response var data = eval('(' + req.responseText + ')'); var targetRef = document.getElementById(target); var targetSel = targetRef.getElementsByTagName('select')[0]; // make it visible targetRef.style.display = 'block'; // clear old data clearSelect(targetSel); // fill with data from json response var i=0; for(var x in data) { targetSel.options[i++] = new Option( data[x].klassen_beschreibung, data[x].klassen_name, data[x].klassen_id ); } // clear all followups while(targetSel.followup) { targetRef = document.getElementById(targetSel.followup); // make it hidden targetRef.style.display = 'none'; // mark next select targetSel = targetRef.getElementsByTagName('select')[0]; // clear old data clearSelect(targetSel); } } } req.open('post', 'ajax.php'); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // send empty post with initial load req.send(domref !== null ? 'id='+domref.value+'&name='+domref.name : ''); return false; // return false to avoid reload/recentering of the page } |
|
|
PHP Quellcode |
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 30 31 32 33 34 35 36 37 38 39 40 |
<?php $ausgabe='<form method="post" action="" id="ajaxSelect"> <table> <tr> <td> text </td> </tr> <tr> <td> </td> </tr> <tr id="elem1" style="display:none"> <td>HauptKategorie:</td> <td><select name="hauptkategorie" onchange="sendRequest(this, 'elem2')"><option value=""></option></select></td> </tr> <tr id="elem2" style="display:none"> <td>UnterKategorie:</td> <td><select name="unterkategorie" onchange="sendRequest(this, 'elem3')"><option value=""></option></select></td> </tr> <tr id="elem3" style="display:none"> <td>UnterUnterKategorie1:</td> <td><select name="unterunterkategorie" onchange="sendRequest(this, 'elem4')"><option value=""></option></select></td> </tr> <tr id="elem4" style="display:none"> <td>UnterUnterKategorie2:</td> <td><select name="unterunterunterkategorie" "><option value=""></option></select></td> </tr> </table> <div> <input type="submit" /> </div> </form> '; echo $ausgabe; ?> |
|
|
PHP Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
echo' <tr> <td> <table> <tr id="hauptkategorie" style="display:block"> <td>HauptKategorie:</td> <td><select name="hauptkategorie" size="1" onChange=\'javascript:sendSelBoxRequest(this, document.getElementById("unterkategorie"));\'><option value="">'.$arbmkat_select_option.'</option></select></td> </tr> </table> </td> <td> <table> <tr id="unterkategorie" style="display:block"> <td>UnterKategorie:</td> <td><select name="unterkategorie" size="1" onChange=\'javascript:sendSelBoxRequest(this, document.getElementById("unterunterkategorie"));\'><option value=""></option></select></td> </tr> </table> </td> </tr>'; |
|
|
PHP Quellcode |
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 |
<?php $Child_id_Array=array("0"); $f=0; $sql = "SELECT unterklasse_id FROM klasse_zu_unterklasse WHERE parent_id = :id"; $ERG = @mysql_query($sql, $central_datenbank->central_verbindung); while($zeile = mysql_fetch_row($ERG)) $Child_id_Array[$f]= $zeile[1]; } $child_array=array("0"); for($g=0;$g<count($Child_id_Array);$g++) { $Names_SQL = 'SELECT Klassen_id, Klassen_name FROM Klassentabelle WHERE Klassen_id='$Child_id_Array[$g]' AND Klassen_Creator = '.$_SESSION['client_id'].') OR (Klassen_public = 1)'; $child_array[$g]= @mysql_query($Names_SQL); } echo 'Hallo!!! '; echo json_encode($child_array); ?> |
This post has been edited 3 times, last edit by "TheMansn" (May 12th 2011, 2:53pm)
.1. Bitte Quellcode hervorheben.
2. Java != JavaScript
3. javascript:funktionsname brauchst du bei Events wie "onchange" nicht. Der Parameter wird automatisch als JavaScript behandelt.
4. Wo ist deine Funktion sendSelBoxRequest? Sonst erstell sie mal und füge nur ein alert('Hello World'); rein, damit siehst du, ob es aufgerufen wird.
This post has been edited 1 times, last edit by "TheMansn" (May 12th 2011, 9:48am)
|
|
JavaScript Code |
1 |
function javascript() {alert("hallo");} |
.
. Hey ;D.
1.: Du kannst die Sachen entweder als normalen Quellcode darstellen, oder mit der konkreten Sprache:
![]()
JavaScript Code
1 function javascript() {alert("hallo");}
Dafür siehe unter dem Editor die "Syntax"-Leiste. Ist dann einfacher zu lesen, muss ich in meinem Programm auch dringend einbauen O_o.
/EDIT: BTW so, wie du es im Startpost gemacht hast.
3. Ergänzung: Das "javascript:funktionsname" hat man bei alten Browsern benötigt, die kein JS unterstützen, damit diese es ignorieren und keine Fehlermeldungen anzeigen.
4. Hast du mal auf Fehlermeldungen überprüft? Z.B. im FF im Addon "Firebug" in der Konsole. Was gibt in Zeile 17 "alert(req);" aus?
Ansonsten würde ich dir generell empfehlen, später jQuery zu benutzen. Dort gibt es eine schöne AJAX-Funktion , die die ganzen Sachen vereinfacht und automatisch macht.

This post has been edited 1 times, last edit by "TheMansn" (May 12th 2011, 2:58pm)
. Hab lange keine normalen AJAX-Anfragen mehr gemacht. |
|
JavaScript Code |
1 |
alert("Fertig!"); |
|
|
JavaScript Code |
1 |
alert(req.responseText); |
.This post has been edited 5 times, last edit by "TheMansn" (May 13th 2011, 3:13pm)