Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mbmesquita

Não consigo acrescentar INPUT text no meu formulário

Recommended Posts

Bom dia amigos, estou com o seguinte problema:

Já tenho um form que está funcionando perfeitamente, envia todos os dados para o banco e tudo mais, só que preciso acrescentar um INPUT de text (para as pessoas escreverem comentários) nesse mesmo form, e quando coloco esse input e faço o envio pela página php, ele me informar um erro na parte das checkbox, gostaria de saber como fazer sem dar o erro.

 

a parte do código que já funciona é essa:

<?php
$id_usuario 		= $_SESSION['id_usuario'];
$cidade 			= $_POST['cidade2'];
$saloes 			= $_POST['saloes_ava'];
$valorapx 			= $_POST['valorapx'];
$atendimento	 	= $_POST['atendimento'];
$servico 			= $_POST['servico1'];
$tde 				= $_POST['tde'];
$ambiente 			= $_POST['ambiente'];


		$opcao='';
		for($i=0; $i <= count($_POST['servicosava']); $i++){
		$opcao+= $_POST['servicosava'][$i]. ' ';
		}

    $sql = " INSERT INTO feedback_recebido3 (id_usuario, cidade2, saloes_ava, servicosava, valorapx, atendimento, servico1, tde, ambiente)values($id_usuario,'$cidade', '$saloes', '".$opcao."', '$valorapx', '$atendimento', '$servico', '$tde', '$ambiente') ";


if(mysqli_query($conexao, $sql)){
	header('Location: feedsucesso.php') ;
} else {
echo 'Erro ao tentar inserir o registro';
}

?>

 

 

E outra questão, tenho essas checkbox que são nomes, que são enviadas e só recebo os values delas no banco de dados, na verdade só recebo as somas desses values.

Gostaria de saber se tem como eu receber além dessa soma, os nomes das checkbox que foram selecionadas?

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa é a parte do input que quer adicionar:

 

<label for="comentario">Comentários</label>
	<input type="text" name="comentario" id="comentario" placeholder="Opcional"><br>

já havia criado a coluna na mesma tabela do banco e tudo mais, mas ao inserir esse input no arquivo de envio php, ele dá erro na parte da soma das checkbox, e retirando a parte do envio desse comentario, o form envia tudo correto.

 

Na parte das checkbox eu já tenho o value, que estão em valores númerais, mas queria receber além desses valores, os nomes, também. no html as checkbox estão assim:

<label for="servicosava1" >Serviços</label>
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="3" />Corte <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="4" />Escova <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="3" />Chapinha <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="5" />Pintura <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="5" />Hidratação <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="9" />Progressiva <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="10" />Outra Química <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="3" />Unha <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="4" />Depilação <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="10" />Penteado <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="10" />Maquiagem <br />
		<input type="checkbox" name="servicosava[]" onclick="verificar()" value="3" />Sombrancelha <br />

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tu tem vários checkbox com mesmos values aí dá conflito e não vi a parte do POST onde pega o comentario

Compartilhar este post


Link para o post
Compartilhar em outros sites
25 minutos atrás, marsolim disse:

tu tem vários checkbox com mesmos values aí dá conflito e não vi a parte do POST onde pega o comentario

 

Sim, mas elas não geram conflito não, após selecionadas elas simplesmente se somam e cai no banco de dados somadas, até então está tudo ok.

 

Eu preciso é adicionar os comentários sem que dê erro na soma das checkbox, porque do jeito que tá, o form funciona perfeitamente.

 

com o POST dos comentários fica assim:

<?php
$id_usuario 		= $_SESSION['id_usuario'];
$cidade 			= $_POST['cidade2'];
$saloes 			= $_POST['saloes_ava'];
$valorapx 			= $_POST['valorapx'];
$atendimento	 	= $_POST['atendimento'];
$servico 			= $_POST['servico1'];
$tde 				= $_POST['tde'];
$ambiente 			= $_POST['ambiente'];
$coment				= $_POST['comentarios'];


		$opcao='';
		for($i=0; $i <= count($_POST['servicosava']); $i++){
		$opcao+= $_POST['servicosava'][$i]. ' ';
		}

    $sql = " INSERT INTO feedback_recebido3 (id_usuario, cidade2, saloes_ava, servicosava, valorapx, atendimento, servico1, tde, ambiente, comentarios)values($id_usuario,'$cidade', '$saloes', '".$opcao."', '$valorapx', '$atendimento', '$servico', '$tde', '$ambiente', '$coment') ";


if(mysqli_query($conexao, $sql)){
	header('Location: feedsucesso.php') ;
} else {
echo 'Erro ao tentar inserir o registro';
}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta trocar $opcao = ''; por $opcao = 0;

Compartilhar este post


Link para o post
Compartilhar em outros sites
23 minutos atrás, marsolim disse:

tenta trocar $opcao = '' por $opcao = 0

 

teste desse jeito e me retorna esse erro:

 

Notice: Undefined index: comentarios in C:\xampp\htdocs\aa_beauty_feedback_at\inclui_feed.php on line 34

Notice: Undefined offset: 3 in C:\xampp\htdocs\aa_beauty_feedback_at\inclui_feed.php on line 42
Erro ao tentar inserir o registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

e onde é que tá esse campo atendimento? no seu for tem um com nome comentario e não atendimento

Compartilhar este post


Link para o post
Compartilhar em outros sites

O operador deveria ser .= invés de += .

Não seria isso?

 

		$opcao='';
		for($i=0; $i <= count($_POST['servicosava']); $i++){
		$opcao .= $_POST['servicosava'][$i]. ' ';
		}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
23 minutos atrás, marsolim disse:

e onde é que tá esse campo atendimento? no seu for tem um com nome comentario e não atendimento

 

tem um com atendimento sim, são campos diferentes, mas existe os 2.

 

17 minutos atrás, Prog disse:

O operador deveria ser .= invés de += .

Não seria isso?

 


		$opcao='';
		for($i=0; $i <= count($_POST['servicosava']); $i++){
		$opcao .= $_POST['servicosava'][$i]. ' ';
		}

 

 

Obrigado pela resposta Prog, antes eu estava fazendo com .= mas ele caia no banco sem a soma, por exemplo: caia 3 9 10

ai troquei para += e agora ta caindo corretamente, 22 , pois eu retorno esses dados já somados para um painel de usuário.

 

Eu só não estou entendendo porque dá erro quando adiciono o campo comentário, sendo que sem esse campo o form funciona corretamente e envia tudo correto para o banco de dados..

Compartilhar este post


Link para o post
Compartilhar em outros sites

e o nome do campo é comentario ou comentarios? verifica se não tá fazendo confusão com os nomes, e só pra desencargo, esse campo tá dentro do das tags <form> e </form>?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só...

 

Se você precisa somar valores numéricos, esta linha esta errada:

 

$opcao+= $_POST['servicosava'][$i]. ' ';

 

Tente:

 

$opcao=0;
for($i=0; $i <= count($_POST['servicosava']); $i++){
$opcao += (int)$_POST['servicosava'][$i];
}

 

Qual erro dá no seu código?

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, marsolim disse:

e o nome do campo é comentario ou comentarios? verifica se não tá fazendo confusão com os nomes, e só pra desencargo, esse campo tá dentro do das tags <form> e </form>?

 

Isso faz sentido, no código que ele postou está "comentario" e "comentarios".

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, marsolim disse:

e o nome do campo é comentario ou comentarios? verifica se não tá fazendo confusão com os nomes, e só pra desencargo, esse campo tá dentro do das tags <form> e </form>?

 

Sim, está tudo dentro do form e realmente tinha confundido os nomes mas já arrumei e continua dando o mesmo erro.

 

59 minutos atrás, Prog disse:

Olha só...

 

Se você precisa somar valores numéricos, esta linha esta errada:

 


$opcao+= $_POST['servicosava'][$i]. ' ';

 

Tente:

 


$opcao=0;
for($i=0; $i <= count($_POST['servicosava']); $i++){
$opcao += (int)$_POST['servicosava'][$i];
}

 

Qual erro dá no seu código?

 

Obrigado pelo toque Prog, arrumei e funcionou da mesma forma que antes, mas acredito que assim seja mais correto mesmo.

 

Mas fiz tudo certo e ajustei os nomes do comentario, e continua dando o mesmo erro, esse aqui:

 


Notice: Undefined offset: 3 in C:\xampp\htdocs\aa_beauty_feedback_at\inclui_feed.php on line 42
Erro ao tentar inserir o registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

e quem é line 42? o que ela carrega? quais suas aspirações, seus anseios, seus desejos? 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples. Basta você olhar para o seu for, você pede para ele somar enquanto for menor ou igual.

Troque para menor apenas.

 

Motivo do erro: Digamos que você tenha 3 retornado pelo count

o for vai contar de 0 - 2 (o que é 3), caso você coloque menor ou igual ele vai somar de 0 - 3, ou seja ele vai tentar receber um quadro inexistente.

Até mais.

 

11 minutos atrás, mbmesquita disse:

for($i=0; $i < count($_POST['servicosava']); $i++)
{

 $opcao += (int)$_POST['servicosava'][$i];
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
30 minutos atrás, marsolim disse:

e quem é line 42? o que ela carrega? quais suas aspirações, seus anseios, seus desejos? 

 

essa é a linha 42:

$opcao += (int)$_POST['servicosava'][$i];

eu só quero simplesmente que o meu form continue funcionando e que eu consiga enviar para o banco de dados com o input de comentarios, só isso.

 

27 minutos atrás, jamesbond disse:

Simples. Basta você olhar para o seu for, você pede para ele somar enquanto for menor ou igual.

Troque para menor apenas.

 

Motivo do erro: Digamos que você tenha 3 retornado pelo count

o for vai contar de 0 - 2 (o que é 3), caso você coloque menor ou igual ele vai somar de 0 - 3, ou seja ele vai tentar receber um quadro inexistente.

Até mais.

 

 

 

beleza, tirei o = e deixei só o menor < mas ele passou a parte do código e retornou o erro

 

Erro ao tentar inserir registro, caiu no else

 

if(mysqli_query($conexao, $sql)){
	header('Location: feedsucesso.php') ;
} else {
echo 'Erro ao tentar inserir o registro';
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu pode dar um print no comando de INSERT e colar aqui pra gente ver?

Ou... Tirar o mysqli_query() do IF e colar a mensagem de erro que está aparecendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

1 minuto atrás, Prog disse:

Tu pode dar um print no comando de INSERT e colar aqui pra gente ver?

ai Prog

$sql = " INSERT INTO feedback_recebido3 (id_usuario, cidade2, saloes_ava, servicosava, valorapx, atendimento, servico1, tde, ambiente, comentarios)values($id_usuario,'$cidade', '$saloes', '".$opcao."', '$valorapx', '$atendimento', '$servico', '$tde', '$ambiente', '$coment') ";


if(mysqli_query($conexao, $sql)){
	header('Location: feedsucesso.php') ;
} else {
echo 'Erro ao tentar inserir o registro';
}

agora ele passa direto e para no else.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tire todo o IF e rode apenas mysqli_query(); faça um print no $sql também.

 

Exemplo:

 

$sql = " INSERT INTO feedback_recebido3 (id_usuario, cidade2, saloes_ava, servicosava, valorapx, atendimento, servico1, tde, ambiente, comentarios)values($id_usuario,'$cidade', '$saloes', '".$opcao."', '$valorapx', '$atendimento', '$servico', '$tde', '$ambiente', '$coment') ";

print $sql;
mysqli_query($conexao, $sql);

/*if(mysqli_query($conexao, $sql)){
	header('Location: feedsucesso.php') ;
} else {
echo 'Erro ao tentar inserir o registro';
}*/

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.