Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js][ajax][php][xml] Wartość zwrotna tablicą
Hazel
post
Post #1





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam.
Mam ciężką sytuację, dość dziwną.
Posiadam kod JS pewnej aplikacji. Nie mogę go zmienić, po prostu go znam. I w tym cały problem - bez zmian kodu JS mam do tego dopisać kod działający po stronie serwera, w PHP.

Fragment funkcji dołączonej do zdarzenia onreadystatechange wygląda tak:
Kod
  if(request.readyState == 4){
        if(request.status == 200){
    if(formObjTyp.length > 0 && formObjTyp == "input"){
      var resp =  request.responseText;
    // Wartość zwrotna jest tablicą.
    var func = new Function("return "+resp);
    var objt = func();
    var sel = document.createElement("select");
    sel.setAttribute("name","countries");
    createOptions(sel,objt);
    var newsel = document.getElementById("newsel");
    reset(newsel);
    newsel.appendChild(sel);
}


Sęk tkwi w funkcji createOptions:
Kod
function createOptions(sel, _options)
{
    if (_options == null || _options.length == 0)
    {
        return;
    }
    var opt = null;
    for (var i = 0; i < _options.length; i++)
    {
        opt=document.createElement("option");
        opt.appendChild(document.createTextNode(_options[i]));
        sel.appendChild(opt);
    }
}


Nie mogę zmienić tego kodu. No a funkcja createOptions() spodziewa się tablicy jako drugiego parametru. Teraz pytanie, jak ułożyć taki kod PHP, żeby w zmiennej objt była tablica... (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)

Jeśli chodzi o mój wysiłek, to próbowałem z XML. Ale wtedy krzaczy się konstruktor Function("return" +resp), chyba że coś źle robiłem...

Ten post edytował Hazel 10.02.2008, 13:00:41
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 22:26