Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus DB können werden nicht in Javascript weiterverarbeitet

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten aus DB können werden nicht in Javascript weiterverarbeitet

    Hallo,
    ich hole aus der Datenbank eine URL Variable und baue mit PHP und dieser Variable einen JavaScript Code. Etwa so
    Code:
    $result = $mysqli->query($sql);
    
    if($result->num_rows==0)
    {
    $row=$result->fetch_assoc();
    $url=$row['spalte_url'];
    
    }
    echo "<script>"....
    
    echo "openURL('".$url."') {//mach irgendwas}";
    ich habe letzte Woche die Datenbank mit neuen Daten befüllt und seitdem geht die JS Funktion openURL nicht mehr. Die Daten werden korrekt aus der Datenbank ausgelesen (sehe ich im übersetzen Quellcode).
    Das komische ist: wenn ich eine feste url manuell in das Script eingebe, dann funktioniert die Funktion openURL(), also so:
    Code:
    $url="www.wasweißich.de" ;
    
    echo "openURL('"..$url."') {//mach irgendwas}
    Ich habe es überprüft: es steht in beiden Versionen exakt die gleiche url da! Nur bei der manuellen Eingabe wird die JS Funktion korrekt ausgeführt.

    Irgendwie muss es also an den Zeichen in der DB selbst liegen. Die Daten der Datenbank habe ich über eine csv Datei eingelesen.
    Jemand ne Ahnung?

    Vielen Dank für eure Hilfe


  • #2
    openURL ist eine Javascript Funktion - was sagt die Brwoser Developerkonsole? JS kann man prima im Browser debuggen...
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Hi,
      Fehlerkonsole sagt: "unexpected token". gegoogelt heißt das wohl "syntax error". Ich kann das leider nicht nachvollziehen, da in beiden Versionen der JS Quellcode absolut identisch ist.

      Kommentar


      • #4
        Hallo,
        ich bin etwas weitergekommen: die variable $url enthielt ursprünglich folgenden Text: "zweites deutsches Fernsehen, www.zdf.de".
        ich habe nun aus der Datenbank das Komma gelöscht, so dass der Inhalt der Variable nun lautet: "Tzweites deutsches Fernsehen www.zdf.de". nun geht es! Komisch ist nur , dass dieses Komma früher nie Probleme bereitet hat.
        Frage: wie kann ich verhindern dass das Komma "übersetzt" wird?

        Kommentar


        • #5
          Verstehe ich das richtig? In Deiner Datenbank im Feld 'spalte_url' steht so was wie 'text text text, www.example.com'?

          Wenn ja, weshalb?

          Kommentar


          • #6
            Das ist im Prinzip richtig. Ich hab das Beispiel zur Vereinfachung etwas abgewandelt. Die DB liegt auch nicht in einer komplett normalisiertenForm vor..aber sie funktioniert seit mehreren Jahren ohne Probleme, bis eben vor einer Woche.

            Kommentar


            • #7
              PHP- und JavaScript-Code sollte nicht vermischt werden. Schreibe PHP-Code in PHP-Dateien und JavaScript-Code in JavaScript-Dateien. Nur so erhältst du eine saubere und stabile Basis. Alles andere sind mehr oder weniger üble Bastellösungen, die den Code schlechter les- und wartbar machen.

              Kommentar


              • #8
                Hallo,
                Problem gelöst:
                Code:
                 
                 echo "openURL('".trim($url)."') {//mach irgendwas}";
                Irgendwie waren da unsichtbare Steuerzeichen in dem String $url, woher auch immer.
                Vielen Dank für die Hilfestellungen.
                Vele Grüße

                Kommentar


                • #9
                  Der PHP-/JavaScript-Mischmasch ist immer noch da. Und es wurden mindestens zwei Kontextwechsel missachtet. So viele Fehler in einer Zeile Code...

                  Kommentar


                  • #10
                    aber sie funktioniert seit mehreren Jahren ohne Probleme, bis eben vor einer Woche.
                    Das wird auch nicht das einzige Problem bleiben, warum normalisierst du die Daten nicht ein für alle mal für die Zukunft.
                    Das ewige rumgebastel um die Daten wieder in einer präsentierbaren Form zu erhalten würde mich stören.

                    Kommentar


                    • #11
                      [MOD: verschoben von PHP-Fortgeschritten]
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche Tutorials

                      Kommentar

                      Lädt...
                      X