Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP+AJAX - Explode funktionert, echo der $ nicht

Einklappen

Neue Werbung 2019

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

  • PHP+AJAX - Explode funktionert, echo der $ nicht

    Schönen Feierabend,

    ich bin ein wenig am verzweifeln..

    Ich habe ein Bild-Upload-Script vor mir liegen, das hauptsächlich auf AJAX aufgebaut ist. Um einen Viewer-Link zu erzeugen, habe ich folgendes eingefügt:

    PHP-Code:
    $viewername explode("/",' + msg + '); 
    '+ msg +' enthält eine normale URL zu einem Bild.

    Dann habe ich die Variable so eingepflanzt:

    PHP-Code:
                result = '<center>Your picture was uploaded successfully!<br><br>'+
                         '<b>Direct link:</b>  <input tabindex="5" size="38" value="'+ msg +'" onclick="this.focus();this.select();" /></center><br>'+
                        '<b>Viewer link:</b> <input tabindex="6" size="38" value="http://domain.com/view.php?image=<? echo $viewername[1]; ?>" onclick="this.focus();this.select();" /><br>';
    Das funktioniert aber so nicht. Wenn man den Upload-Knopf betätigt, scheint er zwar hochzuladen, aber unendlich lange.

    Was ist da los?


  • #2
    Zitat von Mo3 Beitrag anzeigen
    Um einen Viewer-Link zu erzeugen, habe ich folgendes eingefügt:

    PHP-Code:
    $viewername explode("/",' + msg + '); 
    '+ msg +' enthält eine normale URL zu einem Bild.
    Was soll ein „Viewer-Link“ sein, und was bezweckst du mit dem gezeigten Code?

    Das funktioniert aber so nicht.
    „Funzt nich“ ist keine brauchbare Problembeschreibung.

    Wenn man den Upload-Knopf betätigt
    Welchen Knopf?

    Kommentar


    • #3
      Viewer-Link: Ein Link in der Art "domain.com/view.php?image=filename.jpg"
      Dazu brauche ich den Dateinamen:
      PHP-Code:
      $viewername explode("/",' + msg + '); 

      Welchen Knopf?
      Den Upload-Knopf, der den Upload-Vorgang in Bewegung setzt.

      Kommentar


      • #4
        ich habe das gefühl, du mischst gerade php und js ?!?
        Mache dir klar, wann und wo PHP ausgeführt wird und welche Informationen dann zur Verfügung stehen.
        Mache gleiches auch für JavaScript.

        Kommentar


        • #5
          PHP-Code:
          $viewername explode("/",' + msg + '); 
          In der Zeichenkette ' + msg + ' ist überhaupt kein / enthalten - also ist es unsinnig, danach exploden zu wollen.

          Kommentar


          • #6
            Anscheinend vermische ich da wirklich was. Ich werde versuchen, das ganze nochmal zu erklären.

            Ich brauche: Einen Viewer-Link in der Art domain.com/view.php?image=filename

            Ich habe: Die Javascript-Variable (glaub ich) '+ msg +'. Diese enthält einen Link in der Art domain.com/filename.

            Kommentar


            • #7
              Zitat von Papst Beitrag anzeigen
              Mache dir klar, wann und wo PHP ausgeführt wird und welche Informationen dann zur Verfügung stehen.
              Mache gleiches auch für JavaScript.
              Mach es oder stirb...
              Du hast verstanden wo dein Problem liegt und wir haben die sogar gesagt wonach du suchen musst. Vorkauen werden wir dir die Lösung nicht, mindestens mangels Informationen.

              Jetzt bist du am Zug.

              Kommentar


              • #8
                Zitat von Mo3 Beitrag anzeigen
                Ich habe: Die Javascript-Variable (glaub ich) '+ msg +'. Diese enthält einen Link in der Art domain.com/filename.
                Und woher soll jetzt PHP deine JavaScript-Variable kennen?

                Kommentar


                • #9
                  Gut, ich habe jetzt versucht, den basename via Javascript herauszufinden.
                  PHP-Code:
                      <script language="javascript" type="text/javascript">
                  <!--

                  function 
                  basename(file)
                  {
                  var 
                  Parts file.split('\\');
                  if( 
                  Parts.length )
                  Parts file.split('/');
                  return 
                  PartsParts.length -];



                        function 
                  stopUpload(idmsg){
                      var 
                  viewer basename('+ msg +'); 
                      switch (
                  id) {
                            case 
                  0:
                              
                  result '<center>Your picture was uploaded successfully!<br><br>'+
                                       
                  '<b>Direct link:</b>  <input tabindex="5" size="38" value="'msg +'" onclick="this.focus();this.select();" /></center><br>'+
                                      
                  '<b>Viewer link:</b> <input tabindex="6" size="38" value="http://domain.com/view.php?'viewer +'" onclick="this.focus();this.select();" /><br>';
                              break;
                      
                        }
                  //-->
                      
                  </script> 
                  Allerdings wird im betreffenden Feld nur "Domain.com/view.php?image?'viewer'" angezeigt. Warum ist das so?

                  Kommentar


                  • #10
                    Steht in #5.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Das ist wirklich sehr hilfreich. Würde mir bitte jemand erläutern, was ich falsch mache?

                      Kommentar


                      • #12
                        Zitat von Mo3 Beitrag anzeigen
                        Das ist wirklich sehr hilfreich. Würde mir bitte jemand erläutern, was ich falsch mache?
                        '+ msg +' ist die Zeichenkette, die die Zeichen +, Leerzeichen, m, s, g, Leerzeichen und noch mal + enthält.

                        In dieser gibt es wieder ein \ noch ein /, also bringt es auch nichts, diese ersetzen oder daran splitten zu wollen.


                        Wenn dein Dateiname/Pfad in der JavaScript-Variablen msg steht - wieso übergibst du diese dann nicht einfach an deine Funktion?

                        Kommentar


                        • #13
                          Genau daran scheiterts ja D: Wie denn?

                          Kommentar


                          • #14
                            Na wie ruft man denn Funktionen mit Parametern auf ...?

                            Kommentar


                            • #15
                              Schätze, er sollte sich nochmal die Grundlagen anschauen...

                              Kommentar

                              Lädt...
                              X