Hola a todos,
Tengo una aplicación en PHP que retorna el siguiente string desde un Ajax:
El archivo PHP realiza la siguiente acción:
Código PHP:
echo 'response = ' . $json->encode(array('html' => $html, 'script' => $script));
Ésto genera un string similar a éste:
Código:
response = {"html":"<div align=\"right\" id=\"dashletSearch\">\n\t<table>\n\t\t<tr>\n\t\t\t<td>Buscar Sugar Dashlet: <input id=\"search_string\" type=\"text\" length=\"15\" onKeyPress=\"javascript:if(event.keyCode==13)SUGAR.mySugar.searchDashlets(this.value,document.getElementById('search_category').value);\" \/>\n\t\t\t<input type=\"button\" class=\"button\" value=\"Buscar\" onClick=\"javascript:SUGAR.mySugar.searchDashlets(document.getElementById('search_string').value,document.getElementById('search_category').value);\" \/>\n\t\t\t<input type=\"button\" class=\"button\" value=\"Limpiar\" onClick=\"javascript:SUGAR.mySugar.clearSearch();\" \/>\t\t\t\n\t\t\t\t\t\t<input type=\"hidden\" id=\"search_category\" value=\"module\" \/>\n\t\t\t\t\t\t<\/td>\n\t\t<\/tr>\n\t<\/table>\n\t<br>\n<\/div>\n\n <ul class=\"subpanelTablist\" id=\"dashletCategories\">\n\t<li id=\"moduleCategory\" class=\"active\"><a href=\"javascript:SUGAR.mySugar.toggleDashletCategories('module');\" class=\"current\" id=\"moduleCategoryAnchor\">M\u00f3dulos<\/a><\/li>\n\t<li id=\"chartCategory\" class=\"\"><a href=\"javascript:SUGAR.mySugar.toggleDashletCategories('chart');\" class=\"\" id=\"chartCategoryAnchor\">Gr\u00e1ficos<\/a><\/li>\n\t<li id=\"toolsCategory\" class=\"\"><a href=\"javascript:SUGAR.mySugar.toggleDashletCategories('tools');\" class=\"\" id=\"toolsCategoryAnchor\">Herramientas<\/a><\/li>\t\n<\/ul>\n\n<div id=\"moduleDashlets\" style=\"overflow-y:auto;height:400px;\">\n\t<h3>M\u00f3dulos<\/h3>\n\t<div id=\"moduleDashletsList\">\n\t<table width=\"95%\">\n\t\t\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t<td width=\"50%\" align=\"left\"><a href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('TopCampaignsDashlet', 'module', 'Campaigns');\"><img border=\"0\" src=\"themes\/default\/images\/icon_Campaigns_32.gif?c=1&developerMode=1102084534\" width=\"32\" height=\"32\" align=\"absmiddle\"><\/a> <a class=\"mbLBLL\" href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('TopCampaignsDashlet', 'module', 'Campaigns');\">Campa\u00f1as Principales<\/a><br \/><\/td>\n\t\t\t\t\n\t\t\t\t\t\t\t<td width=\"50%\" align=\"left\"><a href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('aig_opportunities_productos_serviciosDashlet', 'module', 'aig_opportunities_productos_servicios');\"><img src=\"custom\/themes\/default\/images\/icon_aig_opportunities_productos_servicios_32.gif\" border=\"0\" align=\"absmiddle\" \/><\/a> <a class=\"mbLBLL\" href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('aig_opportunities_productos_serviciosDashlet', 'module', 'aig_opportunities_productos_servicios');\">Mi Oportunidades Productos y Servicios<\/a><br \/><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\t\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t<td width=\"50%\" align=\"left\"><a href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('aig_productos_serviciosDashlet', 'module', 'aig_productos_servicios');\"><img src=\"custom\/themes\/default\/images\/icon_aig_productos_servicios_32.gif\" border=\"0\" align=\"absmiddle\" \/><\/a> <a class=\"mbLBLL\" href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('aig_productos_serviciosDashlet', 'module', 'aig_productos_servicios');\">Mi Productos y Servicios<\/a><br \/><\/td>\n\t\t\t\t\n\t\t\t\t\t\t\t<td width=\"50%\" align=\"left\"><a href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyCasesDashlet', 'module', 'Cases');\"><img border=\"0\" src=\"themes\/default\/images\/icon_Cases_32.gif?c=1&developerMode=279949929\" width=\"32\" height=\"32\" align=\"absmiddle\"><\/a> <a class=\"mbLBLL\" href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyCasesDashlet', 'module', 'Cases');\">Mis Casos Abiertos<\/a><br \/><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\t\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t<td width=\"50%\" align=\"left\"><a href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyLeadsDashlet', 'module', 'Leads');\"><img border=\"0\" src=\"themes\/default\/images\/icon_Leads_32.gif?c=1&developerMode=1295864259\" width=\"32\" height=\"32\" align=\"absmiddle\"><\/a> <a class=\"mbLBLL\" href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyLeadsDashlet', 'module', 'Leads');\">Mis Clientes Potenciales<\/a><br \/><\/td>\n\t\t\t\t\n\t\t\t\t\t\t\t<td width=\"50%\" align=\"left\"><a href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyContactsDashlet', 'module', 'Contacts');\"><img border=\"0\" src=\"themes\/default\/images\/icon_Contacts_32.gif?c=1&developerMode=889473874\" width=\"32\" height=\"32\" align=\"absmiddle\"><\/a> <a class=\"mbLBLL\" href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyContactsDashlet', 'module', 'Contacts');\">Mis Contactos<\/a><br \/><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\t\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t<td width=\"50%\" align=\"left\"><a href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyAccountsDashlet', 'module', 'Accounts');\"><img border=\"0\" src=\"themes\/default\/images\/icon_Accounts_32.gif?c=1&developerMode=321663561\" width=\"32\" height=\"32\" align=\"absmiddle\"><\/a> <a class=\"mbLBLL\" href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyAccountsDashlet', 'module', 'Accounts');\">Mis Cuentas<\/a><br \/><\/td>\n\t\t\t\t\n\t\t\t\t\t\t\t<td width=\"50%\" align=\"left\"><a href=\"#\" onclick=\"return SUGAR.mySugar.addDashlet('MyEmailsDashlet', 'module', 'Emails');\">...<\/table>\n\t<\/div>\n<\/div>\n\n<div id=\"searchResults\" style=\"overflow-y:auto;display:none;height:400px;\">\n<\/div>","script":""}
(OJO: el string no está completo, el demasiado largo y no se me permite copiarlo acá)
La variable es recibida en ésta función de javascript
:
Código:
var success = function(data) {
eval(data.responseText);
dashletsListDiv = document.getElementById('dashletsList');
dashletsListDiv.innerHTML = response['html'];
document.getElementById('dashletsDialog_c').style.display = '';
SUGAR.mySugar.dashletsDialog.show();
SUGAR.mySugar.dashletsDialog.configFixedCenter(null, false) ;
eval(response['script']);
ajaxStatus.hideStatus();
}
El problema es que la línea eval(data.responseText); me saca un error que dice: "Error: Se esperaba ';'"
Alguien tiene idea de porqué se está generando éste error??
Nota: éste código es sacado de una aplicación pre-fabricada llamada SugarCRM, he probado con otras instalaciones y el string que retorna es muy similar y funciona perfectamente.
Gracias de antemano por su ayuda.