Ver Mensaje Individual
  #13 (permalink)  
Antiguo 02/03/2010, 03:12
Avatar de JuanKa
JuanKa
 
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: Problema funcion $.ajax() en jquery 1.4

Ante todo buenos dias a todos.

Una Prengunta al respecto del json al momento de devolver los datos a javascript

Tengo algo parecido a Joaquin211

Código PHP:
die('{"status":"0","txt":"Los campos marcados con * son obligatorios."}'); 
a esto le he añadido los siguiente :

Código PHP:
die('{"status":"0","txt":"Los campos marcados con * son obligatorios.","contenido":"'.func_mostrar().'"}'); 
y func_mostrar es una funcion que mediante una plantilla muestra codigo html
Código PHP:
<?
function func_mostrar()
{
?>
    <form id="frmDatosGenerales" name="frmDatosGenerales" method="post" accept-charset="utf-8" action="./index.php">
          <table class="tabla_info_hotel">
            <tr>
              <td width="25%"><img src="./img/campo_obligatorio.jpg" />Nombre </td>
              <td width="75%"><input name="NOMBRE" id="NOMBRE" type="text" size="60" value="" /> </td>
            </tr>
            <tr>
              <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P&aacute;gina web&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://</td>
              <td><input name="WEB" id="WEB" type="text" size="60" value="" /></td>
            </tr>
</form>

<?
}
?>
El problema es que cuando ejecuto la llamada a JQUERY:
Código:
function jqueryAjax__Call(urlDestino,ElementosForm,divEstadoProceso,Frm)
{
$.ajax({
        async       : true,
        type        : "POST",
        dataType    : "json",
        contentType : "application/x-www-form-urlencoded",
        url         : urlDestino,
        data        : "sParams="+ElementosForm,
        beforeSend  : function(objeto){
                            $('#'+divEstadoProceso).html("<img src='./img/loading.gif' title='Loading...' />");
                            },                    
        success: function(msg){
                        $('#'+divEstadoProceso).css('display','none');
                        if(parseInt(msg.status)==0)
                        {
                            $('#'+divEstadoProceso).css('display','none');
                            $('#divContenido').html(msg.contenido);
                            jAlert(msg.texto,'Aviso');
                        }

                    },
                                            
        timeout     : 20000,
        error       : function (xhr, desc, exceptionobj){    
                            $('#'+divEstadoProceso).css('display','none');                        
                            alert("El proceso ha fallado!");
                            alert("XHR : "+xhr.responseText);
                            alert("DESCRIPCION : "+desc);
                            alert("EXCEPCION : "+exceptionobj);
                        }                    
    });
}

Pero cuando en el die escribo:

Código PHP:
die('{"status":"0","txt":"Los campos marcados con * son obligatorios.","contenido":"<div id="divContenido'">Muestro el contenido</div>"}); 
Es decir en la variable "contenido" cuando no tengo saltos de linea como los <br /> no me da ningun problema. EL problema es cuando muestro el codigo html que esta en la plantilla que mencione antes

El problema radica cuando es un codigo html que tiene intros (<br />) y me parece que javascript no le gusta. He puesto tanto en codigo php como js las instrucciones para que me uniere el codigo html y nada.

Habia puesto en la funcion func_mostrar en el die lo siguiente y me sale el problema

Código PHP:
die('{"status":"0","txt":"Los campos marcados con * son obligatorios.","contenido":"'.str_replace("<br />","",nl2br(addslashes(func_mostrar()))).'"}'); 
Derrepente me estoy equivocando en algo, a ver si me pueden ayudar con este problema gracias.

Saludos

Última edición por JuanKa; 02/03/2010 a las 03:36