AJAX Select Beispiel mit MySQL

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • AJAX Select Beispiel mit MySQL

    /** HIER DAS BEISPIEL */

    hi,

    ich hab noch eine frage und zwar am beispiel oben wir gezeigt wie eine db in der ersten select abfrage eingebaut wird. das ist okey.

    ich will aber auch in der zweiten select box eine db abfrage machen. ich mach mal ein bsp.

    erste select box

    1
    2
    3
    4
    5


    und wenn jetzt 1 gewählt wird soll die zwiete select box erscheinen und alles was mit 1 in der db drin steht auslesen.

    naja die beschreibung ist net ganz klar ich hoffe aber es passt
  • diesmal beschrlänkt es sich ab wieder auf eine ebene, oder?
    dann splitte ich den thread nämlich später zu einem eigenen thread, damits übersichtlicher wird

    hab mir übrigens vorgenommen noch ein wiki einzubauen, ich denke dieser code ist "der [coderwiki]Informationen/AJAX[/coderwiki]-PHP Code" überhaupt.. da kann man sich alles draus ableiten

    also das wäre dein html code z.b. "formular.php"

    Quellcode

    1. <html><head>
    2. <script type="text/Javascript">
    3. function createXMLHttpRequest() {
    4. var ua;
    5. if(window.XMLHttpRequest) {
    6. try {
    7. ua = new XMLHttpRequest();
    8. } catch(e) {
    9. ua = false;
    10. }
    11. } else if(window.ActiveXObject) {
    12. try {
    13. ua = new ActiveXObject("Microsoft.XMLHTTP");
    14. } catch(e) {
    15. ua = false;
    16. }
    17. }
    18. return ua;
    19. }
    20. var req = createXMLHttpRequest();
    21. function sendRequest(digit) {
    22. // **
    23. // Hier die wichtigen Änderungen. Quelle und Ziel übermitteln
    24. // **
    25. minus = digit-1;
    26. inhalt = document.getElementById('source' + minus );
    27. req.open('get', 'func.php?dest='+ digit + '&s=' + inhalt.value);
    28. req.onreadystatechange = handleResponse;
    29. req.send(null);
    30. }
    31. function handleResponse() {
    32. if(req.readyState == 4){
    33. var response = req.responseText;
    34. var update = new Array();
    35. if(response.indexOf('||' != -1)) {
    36. update = response.split('||');
    37. document.getElementById(update[0]).innerHTML = update[1];
    38. }
    39. }
    40. else
    41. alert("loading" + ajax.readyState);
    42. }</script>
    43. </head>
    44. <body>
    45. <form method="post" action="">
    46. <div style="float:left" id="select1">
    47. <select name="source1" id="source1" onChange="sendRequest(2)">
    48. <option value=""></option>
    49. <?
    50. //CAT = 0 könntest du verwenden um dein hauptmenü zu kennzeichnen
    51. $res = mysql_query("SELECT id, title FROM `tabelle` WHERE `cat` = '0'; ");
    52. while($row = mysql_fetch_object($res)) {
    53. echo '<option value="'.$row->id.'">'.$row->title.'</option>';
    54. }
    55. ?>
    56. </select>
    57. </div>
    58. <div style="float:left" id="select2" name="select2">
    59. </div>
    60. </form>
    61. </body></html>
    Alles anzeigen


    dann wäre das der php code der "func.php"

    Quellcode

    1. <?
    2. echo 'select'.$_GET['dest'].'|| ';
    3. echo '<select name="source'.$_GET['dest'].'" id="source'.$_GET['dest'].'">';
    4. echo '<option value=""></option>';
    5. //if(!is_int($_GET['s']))
    6. // die('hacking_attempt');
    7. //Hier wird nur das zurückgegeben, das in der passenden Kategorie steht
    8. $res = mysql_query("SELECT id, title FROM `tabelle` WHERE `cat` = '$_GET[s]'; ");
    9. while($row = mysql_fetch_object($res)) {
    10. echo '<option value="'.$row->id.'">'.$row->title.'</option>';
    11. }
    12. echo '</select>';
    13. ?>
    Alles anzeigen
  • ich versteh das mit dem case nicht.
    wie baue ich anstatt den zwei case abfrage eine db abfrage ein.

    Ich bekommen ja von meinem ersten select box eine id zugesendet.
    Mit dieser id möchte ich nun bestimmte sachen in der zweiten select box aufrufen.
    Und die dritte select box bekommt ja dann eine bestimmte id von der zweiten select gelistet.
    Ich versteh da grad bahnhof..

    EDIT:
    okey jetzt glaub habe ich es. dieses case hat mich einfach verwirrt.
    sorry und danke für die hife.