Foros del Web » Programando para Internet » Javascript »

¡Hombre por Dios! ¡No se pudo con PHP!

Estas en el tema de ¡Hombre por Dios! ¡No se pudo con PHP! en el foro de Javascript en Foros del Web. Hola foreros! Resulta que tengo código con PHP y JS, me funciona de maravilla. La pesadilla empieza cuando empiezo a utilizar array_unique ( pues si ...
  #1 (permalink)  
Antiguo 30/05/2009, 16:30
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
¡Hombre por Dios! ¡No se pudo con PHP!

Hola foreros!

Resulta que tengo código con PHP y JS, me funciona de maravilla. La pesadilla empieza cuando empiezo a utilizar array_unique ( pues si le pongo más de 3 elementos repetidos no me respeta éstos y los elimina.

Como ejemplo pueden poner:

1234567/1234567/1234567/3216548/9876541/6543217/6543217/6543217/8541235/

Alguien puede ayudarme con código JS que realice la misma función de array_unique pero con mayor potencia?

Última edición por jenusys; 31/05/2009 a las 20:43
  #2 (permalink)  
Antiguo 01/06/2009, 11:36
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: ¡Hombre por Dios! ¡No se pudo con PHP!

Como no hubo NADIE que me ayudara y a manera de aporte, voy a poner el código de un sistema mucho más potente que el array unique( puesto que éste realmente hace que no se repitan arrays por mucho que éstos se repitan (valga la redundancia). Si alguien desea aportar o "acortar" éste código sería de gran ayuda para los que hemos "fregado" con ésto del UNIQUE. Aquí les va para la salvación de la humanidad:

¡GRACIAS A MI MISMO!

<script type="text/javascript">

function barras(campo){
var z = 0;
var primeraMitad = "";
var segundaMitad = "";
for(var i = 0; i < campo.value.length; i++){
z++;
if(z == 7){
z = 0;
if(campo.value.charAt(i + 1) != "/"){
i++;
primeraMitad = campo.value.substring(0, i) + "/";
if(i + 1 < campo.value.length){
segundaMitad = campo.value.substring(i);
}
campo.value = primeraMitad + segundaMitad;
primeraMitad = "";
segundaMitad = "";
}else{
i++;
}
}
}
}

</script>

<?php
//Recogemos los valores del post
$facturas = $_POST["facturas"];

// Separamos factura por factura

if (!empty($facturas))
{
$arrayfac = explode("/", $facturas);

$a=0;
$b=sizeof($arrayfac);

while($b>=$a) {

$c=0;

while($b>=$c) {

if ($arrayfac[$a]==$arrayfac[$c]) {

$arrayfac[$a]=$arrayfac[$a].R;

$ult = $arrayfac[$a];
$find = substr($ult, 0, 7);

} else if ($find==$arrayfac[$c] && !strpos($arrayfac[$c], "R")) {

echo "array $arrayfac[$c] eliminado<br>";

//Elimino el array repetido
//unset($arrayfac[$c]);
$arrayfac[$c]=$arrayfac[$c].N;

}

$c++;

}

$a++;

}
}

//Para el ECHO posterior
for ($contar=0;$contar<=sizeof($arrayfac);$contar++)
{
if (!empty($arrayfac[$contar]))
{
$aunir = $arrayfac[$contar]."/";


//Y finalmente elimino los arrays indeseados
//Nótese la diferencia entre STRPOS y STRRPOS
if (strrpos($aunir, "N")) {$aunir="";}

$unidos = $unidos.$aunir;

//Y elimino la "R"
$unidos = str_replace('R','',$unidos);

}
}
echo $unidos;
?>

<form method="post" action="norepite.php">
<input name="facturas" type="text" id="barrita" onkeyup="barras(this)" onchange="barras(this)">
<input type="submit" name="boton" value="Enviar facturas">
</form>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 23:40.