Pues en efecto esto no funciona debido a que se esta utilizando Ayax, entoces lo mejor es utilizar Ajax tambien para realizar lo que se desea; para esto sera necesario crear otra archivo PHP con el cúal se obtendra de la base de datos la descripción requerida, tambien se modificara un poco el archivo 'req_seleccionado.php' y el código javascript.
El archivo 'req_seleccionado.php' quedaria asi:
Código PHP:
Ver original<?php
if(!isset($_SESSION['us_id'])){ header("Location: ../index.php"); } else {
$usuario=$_SESSION['us_id'];
$admin=$_SESSION['us_tipo'];
$emp=$_GET["q"];
include_once("conexion.php");
include('./Scripts/funcion.php');
$conexion = new ControlBD();
$conexion->conectar();
$conexion->seleccionarBD();
$query="SELECT req_id, em_nombre,su_nombre, us_unidad, us_cargo, us_nombre, us_apellido, us_email, us_telefono, mo_nombre, tra_maestro, req_date, req_descripcion, req_valicacion, us_tipo, req_imagen, req_archivo FROM cgrequerimientos
INNER JOIN cgempresa on req_idempresa=em_id
INNER JOIN cgusuarios on req_usuario=us_id
INNER JOIN cgmodulo on req_idmodulo=mo_id
INNER JOIN cgtransacciones on req_idtrans=tra_tipo
INNER JOIN cgsucursal ON req_idsucursal=su_id
WHERE req_valicacion=0 and req_estado='Activo' AND em_id = '$emp'
ORDER BY req_id,req_date";
$result=$conexion->ejecutarQuery($query);
?>
<form>
<a href="javascript:imprSelec('seleccion')" >Imprimir Requerimientos</a>
<div class="centrado">
<DIV ID="seleccion">
<table class="tablas">
<tr>
<th>Empresa</th>
<th>Sucursal</th>
<th>Ticket</th>
<!--<th>Departamento</th>
<th>Cargo del Solicitante</th> -->
<th>Nombre</th>
<th>Email</th>
<th>Telefono</th>
<th>Modulo</th>
<th>Transaccion</th>
<th>Fecha</th>
<th>Descripcion</th>
<th>Imagen</th>
<th>Documentacion</th>
<th colspan="4">Acciones</th>
</tr>
<?
$indice= 0;
<tr>
<td><?=$array['em_nombre']; ?></td>
<td><?=$array['su_nombre']; ?></td>
<td><strong><?=$array['req_id']; ?></strong></td>
<!--<td><?=$array['us_unidad']; ?></td>
<td><?=$array['us_cargo']; ?></td>-->
<td><?=$array['us_nombre']." ".$array['us_apellido']; ?></td>
<td><?=$array['us_email']; ?></td>
<td><?=$array['us_telefono']; ?></td>
<td><?=$array['mo_nombre']; ?></td>
<td><?=$array['tra_maestro']; ?></td>
<td><?=cambiar_fecha($array['req_date']); ?></td>
<td style=" text-align:justify; font-family:Tahoma, Geneva, sans-serif; font-size:12px;" id="<?="celda".$indice; ?>">
<? if(strlen($array['req_descripcion']) <= 120){ echo $array['req_descripcion'];
}else{
echo $descri=substr($array['req_descripcion'], 0, 120)."<a href=\"#\" onClick=\"mostrar('celda".$indice."', ".$indice.", ".$id.")\">[...]</a>"; } ?>
</td>
<td><a href="<?=$array['req_imagen']; ?>" rel="lightbox" title="imagen"><img src="<?=$array['req_imagen']; ?>" alt="imagen" width="72" height="64" /></a></td>
<? $archivo=$array['req_archivo']; if(substr($archivo,-3) == 'doc'){ ?> <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/word.png" alt="Word" width="50" height="50" /></a></td>
<? } if(substr($archivo,-4) == 'docx'){ ?> <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/word.png" alt="Word" width="50" height="50" /></a></td>
<? } elseif(substr($archivo,-3) == 'xls'){ ?> <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/excel.png" alt="Excel" width="50" height="50" /></a></td>
<? } elseif(substr($archivo,-4) == 'xlsx'){ ?> <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/excel.png" alt="Excel" width="50" height="50" /></a></td>
<? } elseif(substr($archivo,-3) == 'pdf'){ ?> <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/pdf.png" alt="Excel" width="50" height="50" /></a></td>
<? } else {?>
<td class="center">No Tiene</td>
<? } ?>
<td><a href="Javascript:Borrar('<?=$id;?>','Borrar_disp.php' ,'800','300')" title="Anular"><img src="./imagenes/eliminar.png" alt="Eliminar" border=0 ></a></td>
<td><a href="javascript:Actualizar('<?=$id;?>','modificareq.php' ,'850','370')" title="Modificar"><img src="./imagenes/actualizar.png" alt="Modificar" border=0></a></td>
<? if($array['req_valicacion']==0){ ?>
<td><a href="javascript:Validar('<?=$id;?>','activar.php' ,'800','300')" title="Validar"><img src="./imagenes/aceptar.png" alt="Agregar" border=0 ></a></td><? } ?>
<td><a href="javascript:Correo('<?=$id;?>','correo.php' ,'800','300')" title="Correo"><img src="./imagenes/mail.png" alt="Agregar" border=0 ></a></td>
</tr>
<?
$indice++;
} ?>
</table>
</DIV>
</div>
</form>
<? }?>
Lo que se hizo fue agregar un parametro más al llamado a la función 'mostar()', el cual es el id del registro y eliminar los bloques <script></script> que no sirven en este caso.
Ahora el código javascript que se localiza en la página principal.
Código Javascript
:
Ver original<script>
$(function(){
$("input, textarea, select, button").uniform();
});
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
resumen= "";
visible= -1;
i= "";
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","req_selecionado.php?q="+str,true);
xmlhttp.send();
}
var resumen= "";
var visible= -1;
var i= "";
function mostrar(obj, indice, d)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(visible != -1)
document.getElementById('celda'+visible).innerHTML= resumen+" <a href=\"#\" onclick=\"mostrar('celda"+visible+"', "+visible+", "+i+")\">[...]</a>";
resumen= document.getElementById(obj).childNodes[0].nodeValue;
visible= indice;
document.getElementById(obj).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET", "req_selecionado_2.php?ind="+indice+"&id="+d, true);
xmlhttp.send();
}
Con la función mostrar se realizara una consulta asincronica cada vez que se de 'clic' sobre los tres puntos, esta consulta devolvera la descripción completa que se colocara en la celda adecuada al mismo tiempo que se oculta, en caso de que haya, la otra descripción larga.
Finalmente tenemos el segundo archivo PHP en este caso llamado 'req_selecionado_2.php', el cual recibirá como dato el 'id' del registro solicitado y lo único que se necesita es conectarce a la base de datos y obtener los datos deseados creo que seria algo asi.
Código PHP:
Ver original<?php
if(!isset($_SESSION['us_id'])){ header("Location: ../index.php"); } else {
$usuario=$_SESSION['us_id'];
$admin=$_SESSION['us_tipo'];
$emp=$_GET["q"];
include_once("conexion.php");
include('./Scripts/funcion.php');
$conexion = new ControlBD();
$conexion->conectar();
$conexion->seleccionarBD();
$query="SELECT req_descripcion FROM cgrequerimientos where req_id=".$_GET['id'];
$result=$conexion->ejecutarQuery($query);
echo $array['req_descripcion'];
else
echo "no existe el elemento";
?>
Bueno eso ya depende de la estructura de la base de datos. Espero que esto te sirva.