hannesK: PHP in JS

Hallo. Ich habe mithilfe dem autocomplete-Plugin von jQuery (http://docs.jquery.com/Plugins/autocomplete) folgenden Code für einen Autocomplete:

  
  <script>  
  $(document).ready(function(){  
    var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");  
$("#example").autocomplete(data);  
  });  
  </script>  

Jetzt möchte ich die Daten-Quelle (data) aber gerne aus einer PHP-Variablen auslesen. Folgendes funktioniert aber leider nicht:

  
<? $variable = "aa bb cc dd"; ?>  
  <script>  
  $(document).ready(function(){  
    var data = "<?php echo $variable; ?>".split(" ");  
$("#example").autocomplete(data);  
  });  
  </script>  

Weiß jemand Rat?
Danke für jede Hilfe

Hannes

  1. Hi,

    Jetzt möchte ich die Daten-Quelle (data) aber gerne aus einer PHP-Variablen auslesen. Folgendes funktioniert aber leider nicht:

    <? $variable = "aa bb cc dd"; ?>
      <script>
      $(document).ready(function(){
        var data = "<?php echo $variable; ?>".split(" ");
    $("#example").autocomplete(data);
      });
      </script>

      
    Schau dir den generierten Javascript-Code an und vergleich ihn mit dem, was du erwarten würdest. Es gibt an sich kein Problem damit, mit PHP Javascript zu erzeugen, solange man (aber das sollte eigentlich klar sein) daran denkt, in welchen Kontext man hineinschreibt.  
      
    Allerdings: warum ist $variable bei dir ein String? Warum hälst du deine Daten nicht in einem Array und nutzt für die Übertragung in JS-Kontext einfach json\_decode? Dann kannst du auch auf split verzichten.  
      
    Weiter: bist du sicher, dass short\_open\_tags auf ON gestellt ist?  
      
    Bis die Tage,  
    Matti
    
    -- 
    [Webapplikationen in C++ entwickeln](http://tntnet.org/)
    
    1. Danke schonmal für die schnelle Antwort :)
      Dein Hinweis mal zu vergleichen was ich erwarte und was bei meinem Code passiert hat mir geholfen... Ging ja eigentlich ganz einfach:

        <?php $variable = 'aa bb cc'; ?>  
        <script>  
        $(document).ready(function(){  
          var data = "<?php echo $variable; ?>".split(" ");  
      $("#example").autocomplete(data);  
        });  
        </script>
      

      Zu deinen weiteren Anmerkungen:
      Es ging mir gerade nur um die grundsätzliche Problematik, letztendlich werde ich die Daten vermutlich in einem Array speichern.
      Und short_open_tags ist auf meinem server auf off, aber ich habe gerade die erste Zeile manuell hier hinzugefügt ;)

      LG
      Danke!