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
 
Start new topic
Odpowiedzi
Hazel
post
Post #2





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

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


Haa, dokładnie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
W tym momencie też to zrozumiałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dzięki wielkie. Działa.

Napiszę jeszcze, że właściwość length zmiennej zawierajacej responseText to 31, czyli widzi ciąg. Natomiast jak przepuszczę to przez anonimową funkcję, to się robi ilość elementów tablicy zamiast długości ciągu. Dokładnie o to chodziło.
Pozdrawiam.
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: 14.10.2025 - 19:39