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%)
-----


Co do pkt 1. i 2. to faktycznie, jest jak mówisz. mój błąd co nie zmienia faktu że mi nie działa.

Dopiero dziś mogłem wystawić przykład. Możecie to podejrzeć na http://www.czg.pl/ajax/1.php
Oba comboboxy wywołują akcję ajaxa. plik 2.php daje takie samo echo form1. efekt można zobaczyć.

1.php
  1.  
  2. <html>
  3. <head>
  4. <script type="text/javascript" src="calendar.js"></script>
  5. <script type="text/javascript" src="jquery-1.4.2.js"></script>
  6. </head>
  7. <body>
  8.  
  9. <script type="text/javascript">
  10. // tworzymy zmienna
  11.  
  12. function formget1(url, divobj, form)
  13. {
  14. var parameters = getFormValues(form);
  15. jQuery.ajax({
  16. type: "POST",
  17. url: url,
  18. dataType: 'html',
  19. data: parameters,
  20. success: function(html_out) {
  21. $('#div1').html(html_out);
  22. }
  23. });
  24. }
  25.  
  26. function getFormValues(form)
  27. {
  28. var str = "";
  29. var fobj = document.getElementById(form);
  30. var valueArr = null;
  31. var val = "";
  32. var cmd = "";
  33. for(var i = 0;i < fobj.elements.length;i++) {
  34. switch(fobj.elements[i].type) {
  35. case "text":
  36. str += fobj.elements[i].name +
  37. "=" + escape(fobj.elements[i].value) + "&";
  38. break;
  39. case "textarea":
  40. str += fobj.elements[i].name +
  41. "=" + escape(fobj.elements[i].value) + "&";
  42. break;
  43. case "select-one":
  44. str += fobj.elements[i].name +
  45. "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
  46. break;
  47. case "radio":
  48. if (fobj.elements[i].checked) {
  49. str += fobj.elements[i].name +
  50. "=" + fobj.elements[i].value + "&";
  51. }
  52. break;
  53. case "checkbox":
  54. if (fobj.elements[i].checked) {
  55. str += fobj.elements[i].name + "=1&";
  56. } else {
  57. str += fobj.elements[i].name + "=0&";
  58. }
  59. break;
  60. }
  61. //str += fobj.elements[i].name +
  62. // "=" + fobj.elements[i].type + "&";
  63.  
  64. }
  65. str = str.substr(0,(str.length - 1));
  66. return str;
  67. }
  68.  
  69. </script>
  70.  
  71. <?php
  72.  
  73. echo '<div id="div1">
  74. <form name="form1" id="form1" action="1.php" method="post" >
  75.  
  76. <select name="s1" id="s1" onchange="formget1(\'2.php\',\'div1\',\'form1\');" style="width:160;">
  77. <option value="0" selected="selected">aaaa</option>
  78. <option value="2" >bbbb</option>
  79. </select>
  80. <select name="s2" id="s2" onchange="formget1(\'2.php\',\'div1\',\'form1\');" style="width:160;">
  81. <option value="0" selected="selected">cccc</option>
  82. <option value="2" >dddd</option>
  83. </select>
  84. <input type="text" name="f111" value="12345"/>
  85. <script type="text/javascript">
  86. DateInput("k15", true, "YYYY-MM-DD", "2010-06-25");
  87. </script>
  88. <input type=submit tabindex="102" value="test" name="submit">
  89. </form>
  90. ';
  91. print_r($_POST);
  92.  
  93. ?>
  94. </div>
  95. </body>
  96. </html>
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: 26.12.2025 - 15:33