Ricardo T. do Prado Posted December 7, 2011 Report Share Posted December 7, 2011 (edited) 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; Edited December 7, 2011 by Ricardo T. do Prado Quote Link to comment Share on other sites More sharing options...
0 mJi Posted December 7, 2011 Report Share Posted December 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);'. Quote Link to comment Share on other sites More sharing options...
0 Ricardo T. do Prado Posted December 7, 2011 Author Report Share Posted December 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;=( Quote Link to comment Share on other sites More sharing options...
0 mJi Posted December 7, 2011 Report Share Posted December 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. Quote Link to comment Share on other sites More sharing options...
0 Ricardo T. do Prado Posted December 7, 2011 Author Report Share Posted December 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); ?> Quote Link to comment Share on other sites More sharing options...
0 Ricardo T. do Prado Posted December 7, 2011 Author Report Share Posted December 7, 2011 valeu mJi, brigadão ae pela ajudar brother,forte abraço. Quote Link to comment Share on other sites More sharing options...
Question
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;
Edited by Ricardo T. do PradoLink to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.