Musikdatenbank: Mehrere Menüebenen

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

  • Musikdatenbank: Mehrere Menüebenen

    Hi Leute!

    Mein Problem betrifft wohl irgendwie 3 bereiche PHP , DB und JS also hab ichs einfach mal hier gepostet.

    Also folgendes:

    Wir sollen in der Schule eine simple Cd Datenbank machen mit PHP und der php script sammlung "fmandphp".
    So weit so gut nachdem mir das ganze ein bisschen zu easy war und wir noch 2 wochen haben dieses projekt abzugeben (ja ich weis scheiß schule) hab ich mir gedacht ich will etwas mehr advanced machen. itunes like.

    das ganze sollte so aussehen wie bei
    http://nvidia.com/content/drivers/drivers.asp

    nur eben mit den 3 kategorien künstler|alben|titel.

    und wenn man jetzt auf einen künstler im linken feld drückt soll der inhalt der 2 anderen boxen angepasst werden eben mit nur mehr mit alben und titeln dieses künstlers.
    hier ist mal mein source dazu

    Das befüllen der textfeldet on startup funzt ja nur ich will eben irgendwie jetzt machen das wenn man was auswählt das sich eben der content der anderen felder ändert.
    big thx schon mal im voraus

    MFG Ancient.

    Quellcode

    1. <form action="select.htm" onChange="alben_anzeigen(this.form)">
    2. <p>
    3. <select name="kunstler" size="10">
    4. <?php
    5. while ( $FM->getNextRecord() ) {
    6. echo "<option>";
    7. echo $FM->getField("Name");
    8. echo "</option>";
    9. }
    10. echo "</select>";
    11. $FM = new FM_and_PHP();
    12. $FM->setFileMakerHost("www.server.at","8050","7");
    13. $FM->setDatabaseName("CDInfo");
    14. $FM->setDatabaseUserPassword("www.server.at","www.server.at");
    15. $FM->setDatabaseLayout("Album");
    16. $FM->setCommand("findall");
    17. $FM->doQuery();
    18. ?>
    19. <select name="Alben" size="10">
    20. <?
    21. if ($album != "null") {
    22. $nrk = $FM->getField("NrK");
    23. else
    24. $nrk
    25. }
    26. while ( $FM->getNextRecord() ) {
    27. $nr = $FM->getField("Nrk")
    28. if ($nrk==$nr) {
    29. echo "<option>";
    30. echo $FM->getField("Namen");
    31. echo "</option>";
    32. }
    33. }
    34. echo "</select>";
    35. $FM = new FM_and_PHP();
    36. $FM->setFileMakerHost("www.server.at","8050","7");
    37. $FM->setDatabaseName("CDInfo");
    38. $FM->setDatabaseUserPassword("www.server.at","www.server.at");
    39. $FM->setDatabaseLayout("Titel");
    40. $FM->setCommand("findall");
    41. $FM->doQuery();
    42. ?>
    43. <select name="titel" size="10">
    44. <?
    45. while ( $FM->getNextRecord() ) {
    46. echo "<option>";
    47. echo $FM->getField("Titel");
    48. echo "</option>";
    49. }
    50. echo "</select>";
    51. ?>
    52. </p>
    53. </form>
    54. </body>
    55. </html>
    Alles anzeigen
  • das ganze kommt mir sehr bekannt vor..
    a) wir sollen ein Datenbankprojekt machen (was kleines) und ich programmiere ein aufwendiges ebay system
    b) genau für dieses ebay system hab ich vor 2 tagen ein ähnliches script benötigt (für kategorie > unterkategorie)

    so wie du dir das dachtest, müsstest du die seite komplett neuladen, da php ja nur auf dem server ausgeführt wird
    wilst du es jedoch mit javaScript realisieren (ohne neuladen der seite) dann halt dich an folgende lösung

    tip: bei einer größeren datenbank solltest du den JS code besser in externe dateien auslagern

    <a href='http://nopaste.easy-coding.de/?id=197' target='_blank'>http://nopaste.easy-coding.de/?id=197</a>
    (die php schleifen habe ich übersichtshalber mal weggelassen - kriegst du bestimmt hin, oder?)

    Quellcode

    1. <head>
    2. <script type="text/JavaScript">
    3. <!--
    4. var main01Array = new Array("('','',true,true)",
    5. "('sql_query1')",
    6. "('sql_query2')",
    7. "('sql_query3')",
    8. "('sql_query4')");
    9. var main02Array = new Array("('','',true,true)",
    10. "('sql_query5')",
    11. "('sql_query6')",
    12. "('sql_query7')",
    13. "('sql_query8')");
    14. var main03Array = new Array("('','',true,true)",
    15. "('sql_query9')",
    16. "('sql_query10')",
    17. "('sql_query11')",
    18. "('sql_query12')");
    19. function go2choose(inForm,selected) {
    20. var selectedArray = eval(selected + "Array");
    21. while (selectedArray.length < inForm.subcat.options.length)
    22. {
    23. inForm.subcat.options[(inForm.subcat.options.length - 1)] = null;
    24. }
    25. for (var i=0; i < selectedArray.length; i++)
    26. {
    27. eval("inForm.subcat.options[i]=" + "new Option" + selectedArray[i]);
    28. }
    29. if (inForm.choice.options[0].value == '')
    30. {
    31. inForm.choice.options[0]= null;
    32. if ( navigator.appName == 'Netscape')
    33. {
    34. if (parseInt(navigator.appVersion) < 4)
    35. {
    36. window.history.go(0);
    37. } else {
    38. if (navigator.platform == 'Win32' || navigator.platform == 'Win16')
    39. {
    40. window.history.go(0);
    41. }
    42. }
    43. }
    44. }
    45. }
    46. //-->
    47. </script>
    48. </head>
    49. <body>
    50. <form method="post">
    51. <select name="choice" onChange="go2choose(this.form,this.form.choice.options[this.form.choice.selectedIndex].value)">
    52. <option selected value=''>Select</option>
    53. <option value='main01'>Main01</option>
    54. <option value='main02'>Main02</option>
    55. <option value='main03'>Main03</option>
    56. </select>
    57. <select name="subcat">
    58. <option value=''><--------</option>
    59. </select>
    60. </form>
    Alles anzeigen