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> Página web 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