Problema ao usar dois for
Estou com um problema ao usar dois for, exemplo, quando coloco o n_temporadas = 5 e o n_episódios = 3, ele deveria criar 30 linhas ""document.getElementById('div_ep$y$i').style.display=\"none\";" mais cria apenas 6 que são os referentes ao 5, é como se o primeiro for não percorresse, apenas começasse do $y = 5; alguém tem como me ajudar, fiquei a tarde toda tentando resolver ontem, mas nada até agora?
for($y = 1; $y < $n_temporadas+1; $y++){
for($i = 1; $i < $n_episodios+1; $i++){
if($audio == dublado){
$episodios_none_array[$i] = "document.getElementById('div_ep$y$i').style.display=\"none\";
document.getElementById('div_ep_op$y$i').style.display=\"none\";
";
$episodios_block_array[$i] = "case 'mostrar_ep$y$i':
document.getElementById('div_ep$y$i').style.display=\"block\";
break
case 'mostrar_ep_op$y$i':
document.getElementById('div_ep_op$y$i').style.display=\"block\";
break
";
$ep_dub = $_POST['iframe_ep'.$y.$i]; //valores recebido de formulários
$ep_dub_op = $_POST['iframe_ep_op'.$y.$i]; //valores recebido de formulários
$conteudo_episodios_array[$i] = "<button type=\"button\" onclick=\"mostrar_abas(this);\" id=\"mostrar_ep$y$i\" >Episodio $i</button> - <button type=\"button\" onclick=\"mostrar_abas(this);\" id=\"mostrar_ep_op$y$i\" >Opção 2</button><br>
";
$div_episodios_array[$i] = "<div id=\"div_ep$y$i\" style=\"display:none;\">$ep_dub</div>
<div id=\"div_ep_op$y$i\" style=\"display:none;\">$ep_dub_op</div>
";
}else if($audio == dub_leg){
//ainda nada
}
}
}
//transformar os array em string
$episodios_none = implode(" ", $episodios_none_array);
$episodios_block = implode(" ", $episodios_block_array);
$conteudo_episodios = implode(" ", $conteudo_episodios_array);
$div_episodios = implode(" ", $div_episodios_array);
Diogo
Curtidas 0
Melhor post
William
01/03/2016
Pessoal esse usuário "Ramom" está só poluindo mesmo, procurem não dar importância para os posts dele, estou cancelando na medida do possível!
Vamos ver até quando vai essa "brincadeira" dele!
O PHP suporta sim loops FOR dentro FOR.
Vamos ver até quando vai essa "brincadeira" dele!
O PHP suporta sim loops FOR dentro FOR.
GOSTEI 1
Mais Respostas
Ramon
01/03/2016
Bom dia meu caro.
Infelizmente PHP não suporta um for dentro de outro for.
Recomendo usar um for dentro de um while.
Abraço.
Infelizmente PHP não suporta um for dentro de outro for.
Recomendo usar um for dentro de um while.
Abraço.
GOSTEI 0
Diogo
01/03/2016
Acho que você está enganado, pois estou usando em outro lugar do código um for dentro do outro e está funcionando perfeitamente. Vou deixar abaixo o código, esse funcionou corretamente, e estou usando um for dentro do outro dentro de um if:
Testei com While para o n_temporadas e não deu certo, ainda são criados apenas 6. O certo seria ser criados 30 linhas, 15 "div_ep" e 15 "div_ep_op"(tipo isso: 11, 12, 13, 21, 22, 23, 31, 32, 33, 41, 42, 43, 51, 52, 53).
Testei com While para o n_temporadas e não deu certo, ainda são criados apenas 6. O certo seria ser criados 30 linhas, 15 "div_ep" e 15 "div_ep_op"(tipo isso: 11, 12, 13, 21, 22, 23, 31, 32, 33, 41, 42, 43, 51, 52, 53).
<?php
if($audio == dublado){?>
<?php
for($x = 1; $x < $n_temporadas+1; $x++){
echo "$x";?>ªTemporada Dublado - <br>
<?php
for($i = 1; $i < $n_episodios+1; $i++){
echo "$i";?>.ep:
<input type="text" value="opção1" name="<?php echo htmlspecialchars('iframe_ep'.$x.$i);?>" autocomplete="off" /> - <input type="text" value="opção2" name="<?php echo htmlspecialchars('iframe_ep_op'.$x.$i);?>" autocomplete="off" /><br>
<?php }
}?>
<?php
}else if($audio == dub_leg){?>
<?php
for($x = 1; $x < $n_temporadas+1; $x++){
echo "$x";?>ªTemporada Dublado - <br>
<?php
GOSTEI 0
Marcio Araujo
01/03/2016
Bom dia meu caro.
Infelizmente PHP não suporta um for dentro de outro for.
Recomendo usar um for dentro de um while.
Abraço.
Infelizmente PHP não suporta um for dentro de outro for.
Recomendo usar um for dentro de um while.
Abraço.
Nunca tinha lido algo assim, mas nunca foi mostrado em apostilas e em video aulas possiveis exemplos com dois for, nunca tinha reparado!
GOSTEI 0
Diogo
01/03/2016
Bom dia meu caro.
Infelizmente PHP não suporta um for dentro de outro for.
Recomendo usar um for dentro de um while.
Abraço.
Infelizmente PHP não suporta um for dentro de outro for.
Recomendo usar um for dentro de um while.
Abraço.
Nunca tinha lido algo assim, mas nunca foi mostrado em apostilas e em video aulas possiveis exemplos com dois for, nunca tinha reparado!
Acabei de mostrar um exemplo que funciona usando dois for, mas estou tendo aquele problema com o outro código.
GOSTEI 0
Marcio Araujo
01/03/2016
Funciona corretamente? Mas na documentação existe alguma especificação contra?
GOSTEI 0
Diogo
01/03/2016
Até agora não encontrei nada não, acho que não tem nada contra, pois isso seria uma limitação grande demais para o php. Acho que tem como, o problema está em outro lugar que não está funcionando. Talvez possa ser a maneira errada de colocar os índices, ainda não, é isso que quero saber kkk
GOSTEI 0
Marcio Araujo
01/03/2016
Deve ser um detalhe, tentar ver com calma aqui.
GOSTEI 0
Diogo
01/03/2016
Vou mandar o que recebo e o que deveria receber. Estou recebendo dessa parte do:
Isso:
Mas o certo utilizando os dois for, sendo q o n_temporadas é 5 e o n_episodios é 3 seria:
$episodios_none_array[$i] = "document.getElementById('div_ep$y$i').style.display=\"none\";
document.getElementById('div_ep_op$y$i').style.display=\"none\";
";
Isso:
document.getElementById('div_ep51').style.display="none";
document.getElementById('div_ep_op51').style.display="none";
document.getElementById('div_ep52').style.display="none";
document.getElementById('div_ep_op52').style.display="none";
document.getElementById('div_ep53').style.display="none";
document.getElementById('div_ep_op53').style.display="none";
Mas o certo utilizando os dois for, sendo q o n_temporadas é 5 e o n_episodios é 3 seria:
document.getElementById('div_ep11').style.display="none";
document.getElementById('div_ep_op11').style.display="none";
document.getElementById('div_ep12').style.display="none";
document.getElementById('div_ep_op12').style.display="none";
document.getElementById('div_ep13').style.display="none";
document.getElementById('div_ep_op13').style.display="none";
document.getElementById('div_ep21').style.display="none";
document.getElementById('div_ep_op21').style.display="none";
document.getElementById('div_ep22').style.display="none";
document.getElementById('div_ep_op22').style.display="none";
document.getElementById('div_ep23').style.display="none";
document.getElementById('div_ep_op23').style.display="none";
document.getElementById('div_ep31').style.display="none";
document.getElementById('div_ep_op31').style.display="none";
document.getElementById('div_ep32').style.display="none";
document.getElementById('div_ep_op32').style.display="none";
document.getElementById('div_ep33').style.display="none";
document.getElementById('div_ep_op33').style.display="none";
document.getElementById('div_ep41').style.display="none";
document.getElementById('div_ep_op41').style.display="none";
document.getElementById('div_ep42').style.display="none";
document.getElementById('div_ep_op42').style.display="none";
document.getElementById('div_ep43').style.display="none";
document.getElementById('div_ep_op43').style.display="none";
document.getElementById('div_ep51').style.display="none";
document.getElementById('div_ep_op51').style.display="none";
document.getElementById('div_ep52').style.display="none";
document.getElementById('div_ep_op52').style.display="none";
document.getElementById('div_ep53').style.display="none";
document.getElementById('div_ep_op53').style.display="none";
GOSTEI 0
Eduardo Pessoa
01/03/2016
"Copiado" William.
GOSTEI 0
Diogo
01/03/2016
É só tirar o índice $i e deixar o php fazer isso por mim que deu certo aqui.
GOSTEI 0
Marcio Araujo
01/03/2016
Pessoal esse usuário "Ramom" está só poluindo mesmo, procurem não dar importância para os posts dele, estou cancelando na medida do possível!
Vamos ver até quando vai essa "brincadeira" dele!
O PHP suporta sim loops FOR dentro FOR.
Vamos ver até quando vai essa "brincadeira" dele!
O PHP suporta sim loops FOR dentro FOR.
Nesses casos o que pode ser feito?
GOSTEI 0