Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JS po ajaxie
Forum PHP.pl > Forum > XML, AJAX
kimj9174
Niby było ale od tygodnia nie znalazlem ani na googlach ani nigdzie odpowiedzi.

Plik html
Kod
<script type="text/javascript">

Sortable.create("list", { tag:'li',overlap:'vertical',constraint: false,
     onUpdate: function () {Effect.Pulsate('list', { pulses: 5, duration: 1.5 });

getHTML('zapisz.php?akcja=produkty&'+Sortable.serialize('list'));}
}
);
</script>


Ajax
Kod
<script>
    function getHTML(znak)
     {
       var url = znak + "&ms=" + new Date().getTime();
       var myAjax = new Ajax.Request(
        url,
        {
          method: 'get',
          onComplete: showResponse,
          onSuccess: wyswietl
        });
       }
function showResponse(MyRequest)
   {  
     $('right').innerHTML = MyRequest.responseText
   }
    function wyswietl(MyRequest)
     {  
       response = MyRequest.responseText;
        alert(response)
      }
</script>


No i plik php
Kod
echo '<script type="text/javascript">alert("ok");</script>';


I do rzeczy
w chwili odebrania zapytania czyli onSuccess alert zadziala i w alercie jest kod z pliku zapisz.php. Jednak chciałem żeby po podmianie zawartosci wykonał sie javascript. No i tu jest problem.
probowalem na wszytskie sposoby przez eval(); i lipa.

Acha prototype,js jest uzywany.

Sama zawartośc kodu w php jest wykonywana tu jest cacy, ale ten nieszczesny alert.
Moze ktos dobry odpowie co zrobic...

Chyba nikt nie wie sad.gif

ych

Chyba można zamknąć... Nie dowiem się... Być może awykonalne....
lord_t
A jak używałeś tego eval? (zapodaj kod)
kimj9174
response = MyRequest.responseText;
eval(response);
revyag
Zrób to tak:
Kod
response = MyRequest.responseText;
eval('('+response+')');
kimj9174
Niestety dalej nie działa sad.gif
adamli
Mialem pdobny problem tzn funkcje javascript nie byly 'aktywne' po ajaxowej odpowiedzi...
Podaje kod mysle ze Ci pomoze...
Kod
function makeStandardPOSTRequest(url, parameters) {
  http_request = false;
  if (window.XMLHttpRequest) {
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/html');
     }
  } else if (window.ActiveXObject) {
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  }
  http_request.evalScripts = true;
  http_request.onreadystatechange = alertContents;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}
//
function completeCallback(response)
{
  //document.getElementById('myPhoneDialDiv').innerHTML = response;
  var myDiv = document.getElementById('myPhoneDialDiv');
  cells = myDiv.getElementsByTagName("script");
  for (var i = 0; i < cells.length; i++)
  {
   //alert(cells[i].innerHTML);
   eval(cells[i].innerHTML);
  }
}

function alertContents() {
  if (http_request.readyState == 4) {
     if (http_request.status == 200) {
        result = http_request.responseText;
        document.getElementById('myPhoneDialDiv').innerHTML = result;  
        completeCallback();
     } else {
        alert('There was a problem with the request.');
     }
  }
}
karolrynio
Cytat(kimj9174 @ 3.05.2009, 22:23:16 ) *
response = MyRequest.responseText;
eval(response);

To mozesz sprobowac:
Kod
esponse = MyRequest.responseText;
response.evalScripts();
kimj9174
Kod
$(id).innerHTML =  MyRequest.responseText;
response.evalScripts();


dokaldnie tak z podmian zawartosci .
DOczytalem smile.gif
Dzieki pomogles.. Piwo smile.gif



ZAMYKAMY biggrin.gif:D:D:D:D
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.