Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Funkcja w funkcji
Puszy
post
Post #1





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Witam, tworzę kilka prostych funkcji do obsługi AJAX i mam problem który wiąże się z samym JavaScriptem. Otóż chciałbym przekazać funkcję do funkcji tak aby wywoływała się w funkcji, bez sensu napisane więc wytłumaczę na przykładzie:

tworzę obiekt XHR
Kod
var karmian    =    new XMLHttpRequest();


oraz funkcję do wysłania zapytania
Kod
function karmian_send_get(URL, GET_STRING){
    karmian.open('GET', URL+'?'+GET_STRING);
    karmian.onreadystatechange    =    karmian_receive_get;
    karmian.send(null);
}


problemem jest to że chciałbym aby fragment:
Kod
karmian.onreadystatechange    =    karmian_receive_get;

był dynamiczny(?)

Chcę dodać do funkcji karmian_send_get(); parametr którym będzie nazwa funkcji którą chciałbym wywoływać.

coś na zasadzie:
Kod
function karmian_send_get(URL, GET_STRING, FUNKCJA_DO_WYWOLANIA){
    karmian.open('GET', URL+'?'+GET_STRING);
    karmian.onreadystatechange    =    FUNKCJA_DO_WYWOLANIA;
    karmian.send(null);
}


analogicznie mógłbym wykonać kilka różnych wywołań tej samej funkcji:
Kod
karmian_send_get('http://localhost/a.php', 'a=1', wyswietl_w_div());
karmian_send_get('http://localhost/a.php', 'a=1', alert());
karmian_send_get('http://localhost/a.php', 'a=1', inna_funkcja());


Z góry dziękuję za pomoc. Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Puszy
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Dzięki wielkie, wszystko działa jak należy. Wygląda nie za dobrze ale dorzucę jQuery i będzie ok.


gotowy działający kod:
Kod
<html>
    <head>
    
        <script type="text/javascript">

            var karmian    =    new XMLHttpRequest();
        
            function karmian_send_get(URL, GET_STRING, FUNCTION_TO_EXECUTE){
                karmian.open('GET', URL+'?'+GET_STRING);
                karmian.onreadystatechange    =    FUNCTION_TO_EXECUTE;
                karmian.send(null);
            }

            function karmian_receive_get_1(){
                if(karmian.readyState == 4){
                    document.getElementById('cont1').innerHTML    =    karmian.responseText;
                }
            }

            function karmian_receive_get_2(){
                if(karmian.readyState == 4){
                    document.getElementById('cont2').innerHTML    =    karmian.responseText;
                }
            }
        
        </script>
    
    </head>
<body>

    <div id="box">

        <input type="button" value="test1" id="but1" onClick="karmian_send_get('http://localhost/workspace/WebService/ajax.php', 'a=133&b=test1', function(){karmian_receive_get_1();});" />
        <input type="button" value="test2" id="but2" onClick="karmian_send_get('http://localhost/workspace/WebService/ajax.php', 'a=515&b=test2', function(){karmian_receive_get_2();});" />
    
        <br />
    
        <div id="cont1"></div>
        
        <br />
        
        <div id="cont2"></div>
    
    </div>
    
</body>
</html>


i plik php:
  1. <?php
  2.  
  3. print_r($_GET['a'].'<br />'.$_GET['b']);
  4.  
  5. ?>
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: 13.10.2025 - 15:09