Cita:
Iniciado por bymorr
Primero que todo trataría de hacerlo mas simple, utilizando funciones javascript o jquery.
Código HTML:
Ver original function lanzar_dado(){
posibles_numeros = 6 - 1 //Mayor - Menor
numero_dado = Math.random() * posibles_numeros;
var valor= Math.round(parseInt(1)+numero_dado);
document.getElementById("valor").value=valor;
}
<input type="button" value="Lanzar" onclick="lanzar_dado()"> <input type='text' id='valor' />
Ahora si quieres del modo que tu lo hiciste, puede que te sirva esto:
Código HTML:
Ver originalspan {display: none;}
button {display: block;}
<script type="text/javascript"> var VanillaRunOnDomReady = function() {
var boton = document.getElementById("id_boton"),
cuarz = document.getElementsByTagName("div"),
total = cuarz.length,
forEach = Array.prototype.forEach;
// var posicion=0;
boton.addEventListener("click", function () {
var num=0;
var otro='';
var i = 0,
intervalo = setInterval(function () {
if ((i += 100) < 3000) {
var posicion = Math.floor(Math.random() * total);
forEach.call(cuarz, function (estilo) {
estilo.style.display = estilo == cuarz[posicion] ? "block" : "none";
otro =posicion; // defino la posicion del id.
});
} else{
console.log(otro);
alert(otro);
clearInterval(intervalo);
}
}, 100);
}, false);
}
var alreadyrunflag = 0;
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", function(){
alreadyrunflag=1;
VanillaRunOnDomReady();
}, false);
else if (document.all && !window.opera) {
document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>');
var contentloadtag = document.getElementById("contentloadtag")
contentloadtag.onreadystatechange=function(){
if (this.readyState=="complete"){
alreadyrunflag=1;
VanillaRunOnDomReady();
}
}
}
function llamar(){ // creo funcion
setTimeout("if (!alreadyrunflag){VanillaRunOnDomReady}", 0);
}
// window.onload = function(){ //saque el window load y declare una funcion.
// setTimeout("if (!alreadyrunflag){VanillaRunOnDomReady}", 0);
// }
<?php // VARIABLES DE IDS
$a = ('ID '. 1); // ordeno todo los arreglos
$b = ('ID '. 2);
$c = ('ID '. 3);
$d = ('ID '. 4);
$e = ('ID '. 5);
$f = ('ID '. 6);
?>
<form action="" method="post"> <div id='0' style="display: none;"><?php echo $a; ?></div> <!-- ordeno los arreglos --> <div id='1' style="display: none;"><?php echo $b; ?></div> <div id='2' style="display: none;"><?php echo $c; ?></div> <div id='3' style="display: none;"><?php echo $d; ?></div> <div id='4' style="display: none;"><?php echo $e; ?></div> <!-- Por defecto -->
<div id='5' style="display: block;"><?php echo $f; ?></div> <button style="margin-left:20px;" type="button" onclick='llamar();' value="Lanzar Dado" name="button" id="id_boton">¡Lanzar!
</button>
1.- saque window load. y lo cambie por una función para llamar a través de un onclick.
2.- ordene tus div y tus valores.
3.- en tu función declaro un campo otro el cual es la posición del div y que coincide con el id.
eso por lo menos cumple lo que tu necesitas, pero insisto hay formas mas fáciles y con menos lineas de código.
Ya, pero yo quiero que salga con animación xd, por eso me complico la vida, lo que necesito es sacar el numero de la variable "otro" que esta en js, quiero sacar ese numero en una variable php para poder hacer el sistema de premios
Aquí te dejo las variables ordenadas ya que salia una mayor a la del dado:
Código:
<?php // VARIABLES DE IDS
$a = ('ID '. 0);
$b = ('ID '. 1);
$c = ('ID '. 2);
$d = ('ID '. 3);
$e = ('ID '. 4);
$f = ('ID '. 5);
$g = ('ID '. 6);
?>
<form action="" method="post">
<div id='0' style="display: none;"><?php echo $a; ?></div>
<div id='1' style="display: none;"><?php echo $b; ?></div>
<div id='2' style="display: none;"><?php echo $c; ?></div>
<div id='3' style="display: none;"><?php echo $d; ?></div>
<div id='4' style="display: none;"><?php echo $e; ?></div>
<div id='5' style="display: none;"><?php echo $f; ?></div>
<!-- Por defecto -->
<div id='6' style="display: block;"><?php echo $g; ?></div>