Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/02/2007, 10:12
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Rut Chile ...no puedo hacer funcionar

Mira, entiendo que tu formulario es este:
Código PHP:
<html>
<
body>
<
form id="form_rut" name="form_rut" method="post" action="procesar_rut.php">
  <
table width="225">
    <
tr>
      <
td width="26">Rut:</td>
      <
td width="108"><input name="txtRut" type="text" id="txtRut" /></td>
      <
td width="69"><label>
        <
input name="textfield" type="text" size="5" />
      </
label></td>
    </
tr>
    <
tr>
      <
td>&nbsp;</td>
      <
td><label>
        <
input name="btnVerificar" type="submit" id="btnVerificar" value="Enviar" />
      </
label></td>
      <
td>&nbsp;</td>
    </
tr>
  </
table>
</
form>
</
body>
</
html
De aquí se entiende que rut lo escribes en el campo txtRut ya que así lo llamaste y supongo que el formato es el que escribes en el campo textfield, así que cuando el usuario pulse el botón Enviar estos datos se enviaran por método POST hacia el archivo "procesar_rut.php" en este archivo debes poner la función que mencionas y pasarle las variables que enviamos por este método para que al final nos imprima en la pantalla el formato.
La declaración de las variables las hacemos de este modo:
Código PHP:
$_POST['txtRut'];
$_POST['textfield']; 
y la llamada a la función se hace así en tu caso:
Código PHP:
rut$rut$formato ); 
así que el archivo "procesar_rut.php" nos quedaría de esta manera:
Código PHP:
<?php
function rut$ru,$f )

    
$parte explode('.',$ru,3); 
    
$rut $ru $parte[0].$parte[1].$parte[2]; 
    
$i 0
    
$res '0'
    while (
$rut) { 
        
$resto round((($rut/10)-floor($rut/10))*10); 
        
$rut floor($rut/10); 
        
$res[$i++] = $resto
    } 
    
$suma = ($res[0]*2+$res[1]*3+$res[2]*4+$res[3]*5+$res[4]*6+$res[5]*7+$res[6]*2+$res[7]*3)/11
    
$dv  11-ceil(($suma-floor($suma))*10); 
    if (
$dv == 11) { 
        
$dv 0
    } 
    elseif (
$dv == 10) { 
        
$dv 'k'
    } 
    
$a floor ($ru 1000000); 
    
$b floor ($ru 1000) - $a 1000
    
$c $ru floor ($ru 1000) * 1000
    
// Lo siguiente revisa si los números $b y $c tienen sólo 1 o 2 dígitos 
    // y los devuelve (como string) en el formato 00X o 0XY (3 dígitos) 
    
if ($b 100 1) { 
        if (
$b 10 1) { 
            
$b '00'.$b
        } 
        else { 
            
$b '0'.$b
        } 
    } 
    if (
$c 100 1) { 
        if (
$c 10 1) { 
            
$c '00'.$c
        } 
        else { 
            
$c '0'.$c
        } 
    } 
    if (
$f==0) { 
        return 
$dv;    // Devuelve el dígito verificador 
    

    elseif (
$f==1) { 
        return 
$a.'.'.$b.'.'.$c.'-'.$dv;    // Devuelve en el formato 12.345.678-5 
    

    elseif (
$f==2) { 
        return 
$a.$b.$c.'-'.$dv;    // Devuelve en el formato 12345678-5 
    

    elseif (
$f==3) { 
        return 
$a.$b.$c.$dv;    // Devuelve en el formato 123456785 
    

}

// declaramos nombres de variables cortos de las variables enviadas mediante post
$cadena $_POST['txtRut'];
$formato $_POST['textfield'];

// llamamos a la funcion
echo rut$cadena$formato );
?>
Espero sea lo que necesitabas o por lo menos te des una idea. Suerte