madmax00 Geschrieben 15. November 2006 Teilen Geschrieben 15. November 2006 Hallo Leute, ich brauche dringend Hilfe und hoffe, dass mir jemand helfen kann. Auf meine Site werden mehrere Blocksätze (jeweils mit Bild, Text und Telefon) angezeigt. Jetzt habe ich vor noch einem Button einzubauen, über welchen ein Lied abgespielt sein soll. ... $PrivatenAnzeigen_query=mysql_query($select); for($s=1; $s<=mysql_num_rows($PrivatenAnzeigen_query); $s++){ $PrivatenAnzeigen[$s]=mysql_fetch_array($PrivatenAnzeigen_query); $status=$PrivatenAnzeigen[$s][15]; if($status=="active"){ echo "<td width=25% id='haupt5'>"; if(!empty($PrivatenAnzeigen[$s]['Bild'])){ echo "<p class='bildausrichtung' > <a href=\"". ($PrivatenAnzeigen[$s]['Bild'])."\" target=\"_blank\"><img src=\"". ($PrivatenAnzeigen[$s]['Bild'])."\" alt=\"\" galleryimg='no' width=70px ></a></p>\n"; } if(!empty($PrivatenAnzeigen[$s]['Text'])){ echo "<p><b> Gratulieren: </b>".nl2br($PrivatenAnzeigen[$s]['Text'])."</p>\n"; } if(!empty($PrivatenAnzeigen[$s]['Musik'])){ echo "<input type=\"hidden\" name=\"Melodie\" value=".$PrivatenAnzeigen[$s]['Musik'].">"; echo "<input type=\"button\" value=\"Musik\" onClick=\"javascript:test()\">"; } if(($s%4)==0){ echo "</td></tr>"; } echo "</td>"; } } [/PHP] Wenn ich nur ein Datensatz im meinem DB habe funktioniert alles prima, wird neues Fenster geöffnet und Lied abgespielt, genau wie ich mir vorgestellt hatte, aber wenn ich ein zweite Datensatz in DB eintrage, neues Fenster wird geöffnet, aber kein Lied wird abgespielt und bei Liedausgabe steht undefined. [PHP] <script language="javascript"> function test() { var texteingabe; if(document.eingabe.Melodie.value==""){ alert( "Fehler" ); } else { texteingabe=document.eingabe.Melodie.value; alert( "Herzlich Willkommen " ); } var Ausgabe = '<html>'; Ausgabe += '<head> <title>Das Lied</title> </head>'; Ausgabe += '<body>'; Ausgabe += '<embed name="midi" src='+ texteingabe +' loop="1" autostart=true hidden=true>'; Ausgabe += '<h2 align="center"> "Ich bin ein Fenster."</h2>'; Ausgabe += '<font color="red"> :marine </font>'; Ausgabe += '</body></html>'; var Fenster = window.open('','Fenstername','scrollbars,width=400,height=300'); Fenster.document.open("text/html"); Fenster.document.write( Ausgabe ); Fenster.document.write( texteingabe ); Fenster.document.close(); } </script> Was soll ich beachten? MfG max Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 16. November 2006 Teilen Geschrieben 16. November 2006 Du hast echo "<input type=\"hidden\" name=\"Melodie\" value=".$PrivatenAnzeigen[$s]['Musik'].">"; Bei einem Datensatz geht das, denn dann gibt es nur einmal den <hidden> mit dem namen "Melodie" Bei zwei und Datensätzen gibt es den <hidden> mit dem Namen "Melodie" zwei und mehrfach. Da weiss Dein Skript natürlich nicht mehr welcher gemeint ist. Daswegen kommt dann die "undefined" Meldung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 16. November 2006 Teilen Geschrieben 16. November 2006 Achso hehe. Ne Lösung: Du solltest jedem <hidden> Melodie noch die ID des Datensatzen anhängen. echo "<input type=\"hidden\" name=\"Melodie".$DATENSATZID."\" value=".$PrivatenAnzeigen[$s]['Musik'].">"; Und beim Aufruf echo "<input type=\"button\" value=\"Musik\" onClick=\"javascript:test(".$DATENSATZID.")\">"; die ID mit an Deine Funktion test(id) übergeben. Dann sollte das gut klappen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
madmax00 Geschrieben 18. November 2006 Autor Teilen Geschrieben 18. November 2006 hallo, Ich habe jetzt die Änderungen gemacht, aber funktioniert immer noch nicht. ..... function test('Melodie'$s) { ...... if(!empty($PrivatenAnzeigen[$s]['Musik'])){ echo "<input type=\"hidden\" name=\"Melodie".$s."\" value=".$PrivatenAnzeigen[$s]['Musik'].">"; echo "<input type=\"button\" value=\"Musik\" onClick=\"javascript:test(Melodie".$s.")\">"; } [/PHP] Ich weis auch warum, es ist doch nicht gleich: [PHP]"Melodie".$s."='Melodie'$s Wie kann PHP und Javascript bezogen auf mein Beispiel mit einander verbinden? MfG max Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 19. November 2006 Teilen Geschrieben 19. November 2006 function test('Melodie'$s) { muss nur function test(id) { sein, wobei id die id bzw. der name deines elements ist! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
madmax00 Geschrieben 19. November 2006 Autor Teilen Geschrieben 19. November 2006 hallo forTeesSake sein, wobei id die id bzw. der name deines elements ist! Ja, das ist mir auch klar, aber, wenn ich in meinem DB zum Beispiel 100 Einträge haben wurde, ich habe jetzt so versucht: for (var zahl=0; zahl<= 100; zahl++){ var Melodiezahl='Melodie' + zahl; document.write(Melodiezahl+",");//nur zum testen function test(Melodiezahl){ var texteingabe; if(document.eingabe.elements['Melodie' + zahl].value==""){ alert( "Fehler" ); } else { texteingabe=document.eingabe.elements['Melodie' + zahl].value; alert( "Herzlich Willkommen " ); } .... if(!empty($PrivatenAnzeigen[$s]['Musik'])){ echo "<input type=\"hidden\" name=\"Melodie".$s."\" value=".$PrivatenAnzeigen[$s]['Musik'].">"; echo "<input type=\"button\" value=\"Musik\" onClick=\"javascript:test(Melodie".$s.")\">"; [/PHP] Kommt Fehler, dass [PHP]document.eingabe.elements[...].value ist Null oder kein Objekt Eigentlich so ist fast richtig, weil, wenn ich texteingabe=document.eingabe.elements['Melodie1'].value; schreibe, dann funktioniert es, aber nur mit einem bestimmtem Datensatz. Bei dem Test wird Melodie0,Melodie1…. ausgegeben, aber bei elements wird falsch gelesen. MfG max Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 20. November 2006 Teilen Geschrieben 20. November 2006 Hi, also was gar nicht richtig ist, ist, dass du in deiner for-Schleife 100 mal eine Funktion test() schreibst. Die function test() muss nur einmal geschrieben werden. Nimm diese aus der for-Schleife raus. Der Fehler an sich ist aber: Du übergibst im PHP javascript:test(Melodie".$s."); also z.b. javascript:test(Melodie1) Im Javascript greifst Du aber auf function test(Melodiezahl){ ... ... if(document.eingabe.elements['Melodie' + zahl].value==""){ Das stimmt natürlich nicht, da "zahl" dein Schleifenzählewert ist. Es muss if(document.eingabe.elements[Melodiezahl].value==""){ heissen. Viel Erfolg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.