Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ajax] Problem z javascript
slammer
post
Post #1





Grupa: Zarejestrowani
Postów: 187
Pomógł: 6
Dołączył: 31.08.2005
Skąd: Bielsko-Biała

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


Problem polega na tym, że gdy wyświetlam na stronie responseText w którym jest fragment kodu javascript to w efekcie kod ten nie zostaje wykonany, po prostu nic sie nie dzieje. Gdy ten sam plik wyświetle normalnie na stronie to wszystko działa jak należy... Jak zrobić, żeby JS zadziałał przy wczytaniu z ajaxa?

To jest plik do którego odwołuję się przez ajax i zwracam go na stronie.


  1. <a href="java script: void(0)" onclick="alert('asd');">as
  2. <script language="JavaScript" type="text/javascript">
  3. alert('asd');
  4.  
  5. <form action="" method="post">
  6. <input type="hidden" name="order" id="order" value="" />
  7. <input type="submit" onclick="getSort()" value="Sortuj" />
  8. </form>



Link oczywiście poprawnie wyświetla alert.

Ten post edytował slammer 28.04.2007, 12:29:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
slammer
post
Post #2





Grupa: Zarejestrowani
Postów: 187
Pomógł: 6
Dołączył: 31.08.2005
Skąd: Bielsko-Biała

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


możecie "przefiltrować" responseText w taki sposób:

  1. item = myreq.responseText;
  2. data = item.split('\n');
  3. arraylen = data.length;
  4. var i = 0;
  5. while(i < arraylen)
  6. {
  7. if( data[i].indexOf("script") > -1)
  8. {
  9. i++;
  10. while(data[i].indexOf("/script") < 0)
  11. {
  12. eval(data[i]);
  13. i++;
  14. }
  15. }
  16. i++;
  17. }


znalezione gdzies na forum (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) sprawdziłem i działa teraz bez zarzutu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


mam ajaxa ktory ma wywalic skrypt ktory wyglada tak
Kod
<?php

    $zapytanie = 'SELECT * FROM dane_firm WHERE id_firm = '.$_GET['id'].' ';
        $query = mysql_query($zapytanie);
        echo'<srcipt type="text/javascript">';
        
    while($row = mysql_fetch_array($query)) {
        echo'
                var a = document.getElementById(\'naglowek_1\');
                    a.value = "'.$row['nip'].'";
                var b = document.getElementById(\'a_5\');
                    b.innerHTML = "'.$row['nazwa_firmy'].'";
                var c = document.getElementById(\'b_11\');
                    c.value = "'.$row['kraj'].'";
                var d = document.getElementById(\'b_12\');
                    d.value = "'.$row['wojewodztwo'].'";
                var e = document.getElementById(\'b_13\');
                    e.value = "'.$row['powiat'].'";
                var f = document.getElementById(\'b_14\');
                    f.value = "'.$row['gmina'].'";
                var g = document.getElementById(\'b_15\');
                    g.value = "'.$row['ulica'].'";
                var h = document.getElementById(\'b_16\');
                    h.value = "'.$row['nr_domu'].'";
                var i = document.getElementById(\'b_17\');
                    i.value = "'.$row['nr_lokalu'].'";
                var j = document.getElementById(\'b_18\');
                    j.value = "'.$row['miejscowosc'].'";
                var h = document.getElementById(\'b_19\');
                    h.value = "'.$row['kod'].'";
                var l = document.getElementById(\'b_20\');
                    l.value     = "'.$row['poczta'].'";
        ';        
                
            if($row['rodzaj_podatnika'] == 1){
                echo'
                    var cb_1 = document.getElementById(\'b_8_1\');
                        cb_1.checked = true;
                ';
            }elseif($row['rodzaj_podatnika'] == 2){
                echo'
                    var cb_2 = document.getElementById(\'b_8_2\');
                    cb_2.checked = true;
                ';
            }
                    
    }
            echo'</script>';

    
?>

Cytat(slammer @ 5.05.2007, 10:13:48 ) *
możecie "przefiltrować" responseText w taki sposób:

  1. item = myreq.responseText;
  2. data = item.split('\n');
  3. arraylen = data.length;
  4. var i = 0;
  5. while(i < arraylen)
  6. {
  7. if( data[i].indexOf("script") > -1)
  8. {
  9. i++;
  10. while(data[i].indexOf("/script") < 0)
  11. {
  12. eval(data[i]);
  13. i++;
  14. }
  15. }
  16. i++;
  17. }

no ale skrypt wykonuje tylko 2 pierwsze operacje a potem wywala blad
Kod
Błąd: niepasujący znacznik. Oczekiwano: </srcipt>.
Plik źródłowy: http://localhost/viki/druk%20pcc3/lista.php?id=1&_uniqid=922999979
Wiersz: 29, Kolumna: 7
Kod źródłowy:
                </script>    ----------------------------------^

i
Kod
Błąd: data[i] has no properties
Plik źródłowy: http://localhost/viki/druk%20pcc3/druk.php
Wiersz: 132


pozniej w poscie bylo napisane zeby dac wszystko w jednej lini ale tez mi to niedziala
Go to the top of the page
+Quote Post

Posty w temacie
- slammer   [ajax] Problem z javascript   28.04.2007, 12:27:59
- - prond   Spróbuj skorzystać z prototype'a tam masz meto...   30.04.2007, 13:19:50
- - snipe   może przepuść wynik przez funkcj...   30.04.2007, 16:50:27
- - yaotzin   Witam! mam podobny problem, z tym że ja u...   2.05.2007, 23:35:06
- - drbane   Witam, mam identyczny problem, wczytując coś do DI...   3.05.2007, 19:00:10
- - yaotzin   Swoje już załatwiłem, w bibliotece xajax jest taka...   3.05.2007, 19:50:15
- - skowron-line   z przykroscia musze dolaczyc do dyskucji poniewaz ...   4.05.2007, 08:12:13
- - kwiateusz   wysyłany kod przepuścić przez eval?   4.05.2007, 10:02:16
|- - skowron-line   Cytat(kwiateusz @ 4.05.2007, 09:02:16...   4.05.2007, 10:07:56
- - kwiateusz   Odpowiedź w formie pytania Skoro przesyłasz ajaxe...   4.05.2007, 10:13:40
- - drbane   No dobra, EVAL , ale jak tego użyć? Skoro mój skry...   4.05.2007, 15:11:37
- - slammer   możecie "przefiltrować" responseText w t...   5.05.2007, 11:13:48
|- - skowron-line   mam ajaxa ktory ma wywalic skrypt ktory wyglada ta...   18.05.2007, 13:46:16
- - box3r   Może to pomoże [HTML] pobierz, plaintext http://...   6.05.2007, 12:41:37
|- - zaxx   Witam, przeczytałem wcześniejsze posty nie rozwiąz...   10.05.2007, 17:48:38
- - konradk2   to ciekawe ja korzystam z innerHTML i mi wszystko ...   10.05.2007, 19:06:29
- - zaxx   No w ajaxie tak nie jest niestety ... kod się nie ...   10.05.2007, 19:25:23
- - snipe   nie umiecie przepuścić wyniku przez eval()   10.05.2007, 21:01:39
|- - zaxx   Cytat(snipe @ 10.05.2007, 21:01:39 ) ...   10.05.2007, 22:00:25
- - slammer   Kod działa tylko że jest mały zonk... trzeba całeg...   11.05.2007, 09:33:27
- - zaxx   Fakt, teraz jak dałem w jednej linii kod to działa...   12.05.2007, 18:05:04
- - snipe   [PHP] pobierz, plaintext <?phpecho'<srcipt t...   18.05.2007, 21:16:36
- - Arnimag   Hmm mam ten sam problem i używam xajaxa który wrzu...   4.07.2007, 18:27:04
- - yaotzin   Cytat(Arnimag @ 4.07.2007, 19:27:04 )...   4.07.2007, 20:03:25
- - Arnimag   Hmm wybacz ale jeżeli masz mnie tak odsyłać wyżej ...   4.07.2007, 21:23:33
- - yaotzin   CytatSwoje już załatwiłem, w bibliotece xajax jest...   4.07.2007, 21:29:57
- - morrison   mam podobny problem, jeszzce nie mialem okazji sie...   18.11.2008, 10:30:43
- - skowron-line   Tzn. plik lightbox -a dobrze ze masz w pliku główn...   18.11.2008, 10:40:52


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: 16.10.2025 - 13:00