Ver Mensaje Individual
  #11 (permalink)  
Antiguo 04/04/2011, 06:25
adristb
 
Fecha de Ingreso: mayo-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 1
Respuesta: Recortar cadena de texto por pixeles

Buenas de nuevo!!!!

Por fin funciona el código, he tenido que modificar una pequeña cosa, que comento por si a alguien le pasa.

Haber en mi div el id le ponia siempre ej, pero claro ese div al estar en while se repetía varias veces, por lo tanto al ir a buscarlo se hacía un lío con el contenido de esa div.

Tras mucho pensar me he dado cuenta, asique en el id del div concatenada un numero correlativo, es decir.

Código PHP:

while($fila=mysql_fetch_array($resul_eventos)){
          
$con_cal=$con_cal+1;
          
$f=$fila['fe'];//fechaconformato ($fila['dia0'],$fila['mes'],$fila['anio'],3);
          
$eventos.='<tr><td width=50 ><a class="min" href="calendario.php?fecha='.$fila['anio'].'-'.$fila['mes0'].'-'.$fila['dia'].'">'.$f.'</a></td><td class="prod-title"><a href="calendario_evento.php?idevento='.$fila['id_evento'].'"><span><div id="ej'.$con_cal.'" style="width:200px;">'.$fila['tit'].'</div></span></a></td></tr>';
    } 
Después también se me daba el caso de que yo le ponía en el Onload del index.php la función que recortaba la cadena, y me daba error. ya que la llamaba antes de que existieran los div de id ej...
por lo tanto la he llamado a la función acto seguido de crear los div, que tampoco sabía que se podia hacer eso simplemento con:

Código PHP:
<script>
pie();
</script> 
y en el index creo un script con la función pie, que es la que recorta, y cuando llamo a los div le concateno también el número correlativo para que lo encuentra:

Código PHP:
 <script language=""
Array.
prototype.inArray=function(el){ 
    for(var 
i=0,l=this.length;i<l;i++) 
        if(
this[i]==el
            return 
true
    return 
false

function 
pie(){ 
    
//alert(document.getElementById('ej').innerHTML);
    //alert("Hola");
    
var con_cal=1;
    while (
con_cal<=4)
    {
        
//alert (con_cal);
        
        
var txt='<span>'+document.getElementById('ej'+con_cal+'').innerHTML.split('').join('</span><span>')+'</span>'
        
document.getElementById('ej'+con_cal+'').innerHTML=txt
        var 
t=''
        var 
cuenta=[]; 
        for(var 
i=0l=document.getElementById('ej'+con_cal+'').getElementsByTagName('span'),ll=l.length;i<ll;i++){ 
            if(!
cuenta.inArray(l[i].offsetTop)) 
                
cuenta.push(l[i].offsetTop); 
            if(
cuenta.length<2
                
t+=l[i].innerHTML
            else{
                if(
document.getElementById('ej'+con_cal+'').innerHTML.length>t.length)
                
t+='...';
                break;
            }
        } 
        
document.getElementById('ej'+con_cal+'').innerHTML=t
        
con_cal++;
    }

</script> 
Espero poder ayudar a alguien con esto, ya que yo llevo mucho tiempo invertido para esta "tonteria".

Sólo me queda una duda aunque no es importante.

Que quiere decir el siguiente código??

Código PHP:
Array.prototype.inArray=function(el){ 
    for(var 
i=0,l=this.length;i<l;i++) 
        if(
this[i]==el
            return 
true
    return 
false