AJAX/PHP/MySQL und einem Formular

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

  • AJAX/PHP/MySQL und einem Formular

    Hallo Community

    Ich bin gestern auf diese Seite gestoßen, als ich nach einer Lösung meines Problemes gesucht habe.
    Gleich vorweg, ich Code in PHP, bzw versuche das beste daraus zu machen :D Ich mache dies nur des „Spaßes“ wegen und bin kein Profi. Wenn man in anderen Foren eine Frage stellt, welches auch noch in der Anfänger Teiles gestellt worden ist, wird man gleich mit Hochkomplizierten Funktionen von sogenannten „Profis“ bombardiert und teilweise sogar noch beschimpft, warum man nicht Google oder in die Dokumentation schaut. Dabei vergessen viele, dass es einige gibt die so etwas nur als Hobby ansehen und nicht mehr. Und so etwas nennt sich dann Anfängerforum. Achso, warum ich dies alles erzähle!? In der Regel melde ich mich gar nicht mehr in solche Foren an, aber gestern bin ich mal hier die Beiträge durchgegangen und siehe da, vielleicht besteht hier die Chance, dass es ein wenig anders ist ;)

    So, und nun meinem Problem

    Ich habe ein Formular, welches dafür da ist Daten in die MySQL DB einzufügen. Derzeit habe ich eine Lösung die mir gar nicht gefällt, die arbeitet über 2 Seiten und ist nicht wirklich das Wahre. Vorher müsste sich aber Formular diverse Daten aus der DB holen. AJAX könnte vielleicht die Lösung sein.
    Im Formular sind einige Felder (nennen wir sie mal einfach Titel und Version) und 2 weitere, welche aber erst aus der DB ausgelesen werden müssen (von denen brauche ich sowohl die ID als auch den Namen, die ID wird dann am ende übergeben). Leider kann ich die Daten nicht direkt aus der DB holen, weil es einfach zu viele sind und die Page auf 800kb kommen würde, das ist eindeutig zu viel.
    Mein Gedanke ist dieses, 2 Auswahlboxen, in der ersten kann der User einen Buchstaben wählen, dann werden die Daten aus der DB geladen und in der 2ten Box geladen. Dies müsste doch zu machen sein. Ich habe sogar so etwas ähnliches hier gesehen. Für einige Anregungen, Tipps oder Hilfe wäre ich Dankbar.
  • willkommen bei easy-coding,

    generell beantworten wir natürlich alle anfängerfragen.
    der einzige punkt an dem ich halt mache, ist, wenn ich merke, dass mein gegenüber nur fertige codes haben will anstatt irgendetwas selbst zu probieren... aber darauf mache ich dich rechtzeitig aufmerkam, also keine angst beim fragen stellen..

    Für dein Problem empfehle ich den angehängten Beispielcode aus dem Wiki

    was du ändern musst, ist eigentlich nur der MySQL Part
    Probiers mal aus..
    Dateien
  • Danke! :)
    Dies ist zwar noch nicht genau das was ich möchte, aber es funzt :)
    Werd jetzt mal ein wenig rumprobieren und es anpassen so das in Auswahlboxen passt.

    Edit: Da bin ich schon wieder ;)

    Habe es ein wenig umgeschrieben und funktioniert bestens:

    Quellcode

    1. <html><head>
    2. <title>AJAX PHP Beispiel mit Select</title>
    3. <script type="text/Javascript">
    4. <!--
    5. function createXMLHttpRequest() {
    6. var ua;
    7. if(window.XMLHttpRequest) {
    8. try {
    9. ua = new XMLHttpRequest();
    10. } catch(e) {
    11. ua = false;
    12. }
    13. } else if(window.ActiveXObject) {
    14. try {
    15. ua = new ActiveXObject("Microsoft.XMLHTTP");
    16. } catch(e) {
    17. ua = false;
    18. }
    19. }
    20. return ua;
    21. }
    22. var req = createXMLHttpRequest();
    23. function sendRequest() {
    24. id = document.getElementById('dropdown').value;
    25. req.open('get', 'func.php?s='+ id);
    26. req.onreadystatechange = handleResponse;
    27. req.send(null);
    28. }
    29. function handleResponse() {
    30. if(req.readyState == 4){
    31. document.getElementById('inhalt').innerHTML = req.responseText;
    32. }
    33. else
    34. alert("loading" + ajax.readyState);
    35. }
    36. //-->
    37. </script>
    38. <p />Wählen Sie einen Eintrag aus um den Inhalt zu laden
    39. <table border="0" cellspacing="0" cellpadding="0">
    40. <tr>
    41. <td><select name="entwickler" size="4" multiple="multiple" id="dropdown" onChange="sendRequest()">
    42. <?
    43. echo '<option value="a">A</option>';
    44. echo '<option value="b">B</option>';
    45. ?>
    46. </select>
    47. </td>
    48. <td width="2"></td>
    49. <td><div id="inhalt"></div></td>
    50. </tr>
    51. </table>
    52. </body></html>
    Alles anzeigen


    Nun brauche ich dies nochmal auf der Seite welches eine weitere Datenbankabfrage tätigt, leider bekomme ich dies nicht gebacken. Habe zwar ein wenig rumgespielt, aber es wird nur ein Ergebniss angezeigt.


    Edit die 2te:
    So, habe es doch hinbekommen :)
    Hier der Code:

    Quellcode

    1. <html><head>
    2. <title>AJAX PHP Beispiel mit Select</title>
    3. <script type="text/Javascript">
    4. <!--
    5. function createXMLHttpRequest() {
    6. var ua;
    7. if(window.XMLHttpRequest) {
    8. try {
    9. ua = new XMLHttpRequest();
    10. } catch(e) {
    11. ua = false;
    12. }
    13. } else if(window.ActiveXObject) {
    14. try {
    15. ua = new ActiveXObject("Microsoft.XMLHTTP");
    16. } catch(e) {
    17. ua = false;
    18. }
    19. }
    20. return ua;
    21. }
    22. var req = createXMLHttpRequest();
    23. function sendRequest() {
    24. id = document.getElementById('dropdown').value;
    25. req.open('get', 'func.php?s='+ id);
    26. req.onreadystatechange = handleResponse;
    27. req.send(null);
    28. }
    29. function sendRequest2() {
    30. id = document.getElementById('dropdown2').value;
    31. req.open('get', 'func_2.php?s='+ id);
    32. req.onreadystatechange = handleResponse2;
    33. req.send(null);
    34. }
    35. function handleResponse2() {
    36. if(req.readyState == 4){
    37. document.getElementById('inhalt2').innerHTML = req.responseText;
    38. }
    39. else
    40. alert("loading" + ajax.readyState);
    41. }
    42. function handleResponse() {
    43. if(req.readyState == 4){
    44. document.getElementById('inhalt').innerHTML = req.responseText;
    45. }
    46. else
    47. alert("loading" + ajax.readyState);
    48. }
    49. //-->
    50. </script>
    51. <p />Wählen Sie einen Eintrag aus um den Inhalt zu laden
    52. <table border="0" cellspacing="0" cellpadding="0">
    53. <tr>
    54. <td><select name="entwickler" size="4" multiple="multiple" id="dropdown" onChange="sendRequest()">
    55. <?
    56. echo '<option value="a">A</option>';
    57. echo '<option value="b">B</option>';
    58. ?>
    59. </select>
    60. </td>
    61. <td width="2"></td>
    62. <td><div id="inhalt"></div></td>
    63. </tr>
    64. </table>
    65. <p />Wählen Sie einen Eintrag aus um den Inhalt zu laden
    66. <table border="0" cellspacing="0" cellpadding="0">
    67. <tr>
    68. <td><select name="entwickler2" size="4" multiple="multiple" id="dropdown2" onChange="sendRequest2()">
    69. <?
    70. echo '<option value="a">A</option>';
    71. echo '<option value="b">B</option>';
    72. ?>
    73. </select>
    74. </td>
    75. <td width="2"></td>
    76. <td><div id="inhalt2"></div></td>
    77. </tr>
    78. </table>
    79. </body></html>
    Alles anzeigen
  • "d0nUt" schrieb:

    öhm, super ;)

    und nach deiner vorsichtigen begrüßung hatte ich eigentlich einen voll-noob erwartet..
    so täuscht man sich, sry


    Nene, nen voll-noob bin ich nicht, trotzdem gibt es noch genug wo ich nicht durchblicke :)

    PHP ist halt nur ein Hobby für mich. "Der Profi" werde ich wohl nie werden, einfach zu wenig zeit ^^