Ver Mensaje Individual
  #11 (permalink)  
Antiguo 31/03/2009, 11:43
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Ajax a PHP y luego a JavaScript

No sé qué estarás haciendo para que suceda eso. Evaluar es hacer lo que hace la función eval (tomar un string y considerarlo como una expresión).
Veamos un ejemplo (podés testearlo aquí: http://www.disegnocentell.com.ar/ejemplo_/ejemplo.php y descargarlo aquí: http://www.disegnocentell.com.ar/ejemplo_/ejemplo.zip).
Este es código utilizado:
Código PHP:
<?php 
if(isset($_POST['p'])){
    switch(
$_POST['p']){
        case 
'uno':
        echo 
'
            <script type="text/javascript">
               var so = new SWFObject("ejemplo.swf", "ejemplo", "550", "400", "8", "#CCCCCC");
               so.addParam("quality", "high");
                so.addVariable("data","pagina 1");
               so.write("flashcontent");
            </script>
        '
;
        break;
        case 
'dos':
        echo 
'
            <script type="text/javascript">
               var so = new SWFObject("ejemplo.swf", "ejemplo", "550", "400", "8", "#CCCCCC");
               so.addParam("quality", "high");
                so.addVariable("data","pagina 2");
               so.write("flashcontent");
            </script>
        '
;
        break;
        default:
        echo 
'
            <script type="text/javascript">
               var so = new SWFObject("ejemplo.swf", "ejemplo", "550", "400", "8", "#CCCCCC");
               so.addParam("quality", "high");
                so.addVariable("data","inicio");
               so.write("flashcontent");
            </script>
        '
;
    }
    exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ejemplo</title>
<script src="swfobject.js"></script>
<script>
String.prototype.tratarResponseText=function(){
    var pat=/<script[^>]*>([\S\s]*?)<\/script[^>]*>/ig;
    var pat2=/\bsrc=[^>\s]+\b/g;
    var elementos = this.match(pat) || [];
    for(i=0;i<elementos.length;i++) {
        var nuevoScript = document.createElement('script');
        nuevoScript.type = 'text/javascript';
        var tienesrc=elementos[i].match(pat2) || [];
        if(tienesrc.length){
            nuevoScript.src=tienesrc[0].split("'").join('').split('"').join('').split('src=').join('').split(' ').join('');
        }else{
            var elemento = elementos[i].replace(pat,'$1','');
            nuevoScript.text = elemento;
        }
        document.getElementsByTagName('body')[0].appendChild(nuevoScript);
    }
    return this.replace(pat,'');
}
function http(){
    if(typeof window.XMLHttpRequest!='undefined'){
        return new XMLHttpRequest();    
    }else{
        try{
            return new ActiveXObject('Microsoft.XMLHTTP');
        }catch(e){
            alert('Su navegador no soporta AJAX');
            return false;
        }    
    }    
}
function request(url,callback,params){
    var H=new http();
    if(!H)return;
    H.open('post',url+'?'+Math.random(),true);
    H.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    H.onreadystatechange=function(){
        if(H.readyState==4){
            if(callback)
                callback(H.responseText);
            H.onreadystatechange=function(){}
            H.abort();
            H=null;
        }
    }
    var p='';
    for(var i in params){
        p+='&'+i+'='+escape(params[i]);    
    }
    H.send(p);

function evaluar(r){
    r.tratarResponseText();
}
</script>
</head>

<body>
<div id="flashcontent">
</div>
<script type="text/javascript">
   var so = new SWFObject("ejemplo.swf", "ejemplo", "550", "400", "8", "#CCCCCC");
       so.addParam("quality", "high");
    so.addVariable("data","inicio");
   so.write("flashcontent");
</script>
<a href="#" onclick="request('',evaluar,{'p':'uno'})">pagina 1</a> | <a href="#" onclick="request('',evaluar,{'p':'dos'})">pagina 2</a> |<a href="#"  onclick="request('',evaluar,{'p':'cualquiercosa'})"> inicio
</a>
</body>
</html>

Última edición por Panino5001; 31/03/2009 a las 11:55