Ricardo T. do Prado Postado Dezembro 7, 2011 Denunciar Share Postado Dezembro 7, 2011 (editado) Por lógica, o loop tinha que me trazer 3 inputs do tipo TEXT e 1 do tipo PASSWORD, mas só retorna 1 input do tipo text, Alguma luz ae?<?php $fields = array( "text"=>"nome", "text"=>"login", "password"=>"senha", "text"=>"e-mail" ); $input = array(); foreach ($fields as $key=>$value) { if($key == "text") { $input[] = "<input type=text name=$value/> $value </br>"; } if($key == "password") { $input = "<input type=password name=$value/> $value </br>"; } if($key == "textarea") { $input[] = "<textarea name=$value/> </textarea> </br>"; } if($key == "select") { $var = explode(',',$value); conexao(); $wizard = "<select name=".$var[4]."> <option> ---selecione --- </option>"; $sql = mysql_query("select ".$var[1].", ".$var[2]." from ".$var[0]."") or die (mysql_error()); while($row = mysql_fetch_row($sql)) { $wizard.="<option value=".$row[0]."> ".$row[1]." </option>"; } $wizard.=" </select>"; $input[] = $wizard; } } foreach($input as $saida) { echo $saida; } ?>Abs; Editado Dezembro 7, 2011 por Ricardo T. do Prado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mJi Postado Dezembro 7, 2011 Denunciar Share Postado Dezembro 7, 2011 Tente assim:if($key == "text") { $input[] = "<input type='text' name='".$value."' /> '".$value."' </br>"; } if($key == "password") { $input[] = "<input type='password' name='".$value."' /> '".$value."' </br>"; } if($key == "textarea") { $input[] = "<textarea name='".$value."' /> </textarea> </br>"; }Só o '[]' do campo 'password' tá faltando.Pode ser que o vetor tinha todos os elementos, mas o HTML tava com alguma tag conflitando... Pessoalmente, sempre dos os 'escapes' quando uso variáveis em strings. Recomendo o mesmo.E na dúvida, dá um 'print_r($input);'. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo T. do Prado Postado Dezembro 7, 2011 Autor Denunciar Share Postado Dezembro 7, 2011 grato pela observação, mas já tinha visto isso e não é isso, mesmo q faltasse ´[]' os 3 inputs tinham que aparecer, me parece que se ele encontrar no primeiro loop == "text" ele dá um break, tava lendo isso, mas não sei como resolver. até tenteiif($key == "password") { $input[] = "<input type='password' name='".$value."' /> '".$value."' </br>"; } continue;mas não virou;=( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mJi Postado Dezembro 7, 2011 Denunciar Share Postado Dezembro 7, 2011 Só me toquei agora disso$fields = array( "text"=>"nome", "text"=>"login", "password"=>"senha", "text"=>"e-mail" );Você possui três elementos com o mesmo índice ("text"), ou seja, "nome" é sobrescrito por "login", que é sobrescrito por "e-mail". No final, $fields só possui dois elementos: $fields['password'] que tem o valor "senha", e $fields['text'] que tem o valor "e-mail".Simplesmente mude o nome dos índices. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo T. do Prado Postado Dezembro 7, 2011 Autor Denunciar Share Postado Dezembro 7, 2011 como resolver isso? to sem idéia de vez mano.Resolvi, só inverti CHAVE/VALOR, segue solução<?php $fields = array( "nome"=>"text", "login"=>"text", "senha"=>"password", "email"=>"text" ); $input = array(); foreach ($fields as $key=>$value) { if($value == "text") { $input[] = "<input type=text name=$key/> $key </br>"; } if($value == "password") { $input[] = "<input type=password name=$key/> $key </br>"; } if($value == "textarea") { $input[] = "<textarea name=$key/> </textarea> </br>"; } if($value == "select") { $var = explode(',',$key); conexao(); $wizard = "<select name=".$var[4]."> <option> ---selecione --- </option>"; $sql = mysql_query("select ".$var[1].", ".$var[2]." from ".$var[0]."") or die (mysql_error()); while($row = mysql_fetch_row($sql)) { $wizard.="<option value=".$row[0]."> ".$row[1]." </option>"; } $wizard.=" </select>"; $input[] = $wizard; } } foreach($input as $saida) { echo $saida; } print_r($input); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo T. do Prado Postado Dezembro 7, 2011 Autor Denunciar Share Postado Dezembro 7, 2011 valeu mJi, brigadão ae pela ajudar brother,forte abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ricardo T. do Prado
Por lógica, o loop tinha que me trazer 3 inputs do tipo TEXT e 1 do tipo PASSWORD, mas só retorna 1 input do tipo text, Alguma luz ae?
Abs;
Editado por Ricardo T. do PradoLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.