Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak uruchomić javascrypt po przeslaniu kodu w AJAX ?, Run JavaScript after AJAX load
kojocik76
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.06.2010

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


Witam,
Przejrzałem kilka wątków w tym temacie ale nic sensownego nie znalazłem, może ktoś z grupowiczów mi pomoże .... ?

Otóż mam taki problem:
1.skrypt.php który generuje mi kod html+javascript - działa wywołany bezpośrednio
np.
  1. echo 'kod html';
  2. echo '<script>kod javascript </script>';
  3. echo 'kod html';


2. natomiast jeśli przepuszczam go przez AJAX - już nie !

  1. ...
  2. object.open("POST", "skrypt.php",true);
  3. ....
  4. if (object.readyState == 4 && object.status == 200) {
  5. obj_div.innerHTML= object.responseText;
  6.  
  7. /*
  8. //use eval
  9. var ob = obj_div.getElementsByTagName("script");
  10. for(var i=0; i<ob.length-1; i++){
  11. if(ob[i+1].text!=null) eval(ob[i+1].text);
  12. }
  13. */
  14.  
  15. }
  16.  
  17.  
  18. ....
  19. <div id="obj_div">
  20.  
  21. </div>
  22. ...



3. jesli w pliku skrypt.php mam np. <script> alert('tekst'); </script> - to eval działa, ale jesli np chciałbym już coś wyświetlić w odpowiednim miejscu kodu html generowanego w tym skrypcie to już nie daje rady (IMG:style_emoticons/default/sad.gif)

Czy ktoś z szanownych grupowiczów przyjdzie mi z pomocą ? Może jest jakaś inna ścieżka na rozwiązanie tego problemu ? POMOCY !

pozdr,
AdamP
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kojocik76
post
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.06.2010

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


Dzięki wielkie za szybką odpowiedź (IMG:style_emoticons/default/smile.gif)

Przerobiłem kod do jQuery - fakt, szybko, miło i sprawnie ...niestety utknąłem w tym samym miejscu. A o to przykład: (później opiszę do czego mi to potrzebne, być może faktycznie powinienem isć inną drogą rozumowania?)

1. plik z ajaxem:

  1. <script type="text/javascript" src="calendar.js"></script>
  2. </head>
  3. ....
  4. function formget1(url, divobj, form)
  5. {
  6. var parameters = pobierzWartForm(form);
  7. jQuery.ajax({
  8. type: "POST",
  9. url: url,
  10. dataType: 'html',
  11. data: parameters,
  12. success: function(html_out) {
  13. $('#div1').html(html_out);
  14. }
  15. });
  16. }
  17. ......
  18.  
  19. echo '<div id="div1">
  20. <form name="form1" id="form1" action="1.php" method="post" >
  21.  
  22. <select name="s1" id="s1" onchange="formget1(\'2.php\',\'div1\',\'form1\');" style="width:160;">
  23. <option value="0" selected="selected">aaaa</option>
  24. <option value="2" >bbbb</option>
  25. </select>
  26. <script>
  27. DateInput("k15", true, "YYYY-MM-DD", "2010-06-25");
  28. </script>
  29. <input type=submit tabindex="102" value="test" name="submit">
  30. </form>';


oraz kod z pliku wywoływanego przez jQuery (ajax) ....(akurat w tym przypadku echo z pierwszego i drugiego pliku niczym się nie różni ale w założeniu ma być i to znacznie)

  1.  
  2. echo '<div id="div1">
  3. <form name="form1" id="form1" action="1.php" method="post" >
  4.  
  5. <select name="s1" id="s1" onchange="formget1(\'2.php\',\'div1\',\'form1\');" style="width:160;">
  6. <option value="0" selected="selected">aaaa</option>
  7. <option value="2" >bbbb</option>
  8. </select>
  9. <script>
  10. DateInput("k15", true, "YYYY-MM-DD", "2010-06-25");
  11. </script>
  12. <input type=submit tabindex="102" value="test" name="submit">
  13. </form>';
  14.  


OK.
to był przykład który jeśli by mi zadziałał byłbym już w domu. A teraz pokrótce opiszę co chciałbym uzyskać.
Otóż mój kod php generuje formularz na podstawie konfiguracji zapisanej w bazie.Kilka typów kontrolek może wywoływać podscenariusze formularza głównego w zależności od konfiguracji i aktualnych danych. Efekt docelowy który chcę/muszę uzyskać to aby po zmianie wartości kontrolki x odrysować nowy formularz wraz z podscenariuszem wywołanym przez tą kontrolkę bez odświeżania strony.Czyli plik php wywolany przez ajax'a ma za zadanie stworzyć nową wersję scenariusza wysyłając echo 'kod html';. Wszystko działa pięknie jeśli mam standardowe kontrolki, ele wykorzystuję w formularzu dwie dodatkowe (gotowce javascript), które po przeładowaniu przez ajax już nie działają (IMG:style_emoticons/default/sad.gif) . przykład powyżej.
Problem pokrótce wygląda tak. Czy jest na to jakieś sensowne rozwiązanie (IMG:style_emoticons/default/questionmark.gif) ?

pozdr,
AdamP
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: 29.12.2025 - 00:34