Ir para conteúdo

Arquivado

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

Felipesudrj

[Resolvido] Array e checkbox em php

Recommended Posts

Olá....

Veja se é isso.....seria mais ou menos assim

 

tenho dois campos no meu banco de dados.

Produto e status

 

no meu formulario....

ele exibe a consulta de quantidade de produtos.....e exibe o status desse produto.....

exemplo do HTML

<html>...

<table>

<TR>

<td>quantidade produto1<td>

<td>status<td>

<tr>

...<html>

 

Ai realizo uma busca em php......

<?php

while($l = mysql_fetch_array($resultado)) {

$qtdproduto1 = $l["qtdproduto1"];//recebe do meu banco as quantidade

$status = $l["status"] // recebe do meu banco o status atual do produto

echo"

<tr>".

"<td>".$qtdproduto1. "<td>". //exibe os valores(quantidades)

"<td>"."<input name=\"caixa[ ]\" type=\"checkbox\" value=\"Enviado\"/>"."</td>". //exibe a caixa de checkbox para ser selecionada

"<td>"."$status"."</td>". //Exibe o Status atual

"</tr>\n";

}

?>

</table>

 

 

A ideia é....vamos supor que se status que atualmente esta com status de não enviado....apos eu selecionar o checkbox daquele produto e submeter o formulário esse valor mude para “enviado” no banco.

Eu não tenho a mínima idéia de como será a pagina que irá receber esse formulário...rs

Vocês podem me mostrar um exemplo....?

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça um teste. abra <form> colocque a action e method, e ponha um botão submit e esses inputs..

 

<input type="checkbox" name="nome[]" value="Felipe" />Felipe
<input type="checkbox" name="nome[]" value="Pieretti" />Pieretti
<input type="checkbox" name="nome[]" value="Umpierre" />Umpierre
<input type="checkbox" name="nome[]" value="Felipe Pieretti Umpierre" />Felipe Pieretti Umpierre

 

no teu php:

 

echo "</pre>";
print_r( $_POST );
echo "</pre>";

 

veja o que ele está retornando, para trabalhar com os valores, use foreach()

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que meu Imput esta dentro do PHP....então o value dele seria o que? o valor de $qtdproduto1 ou o que quero que seja o resultado que aparecerá no banco...ou seja....enviado???

 

 

faça um teste. abra <form> colocque a action e method, e ponha um botão submit e esses inputs..

 

<input type="checkbox" name="nome[]" value="Felipe" />Felipe
<input type="checkbox" name="nome[]" value="Pieretti" />Pieretti
<input type="checkbox" name="nome[]" value="Umpierre" />Umpierre
<input type="checkbox" name="nome[]" value="Felipe Pieretti Umpierre" />Felipe Pieretti Umpierre

 

no teu php:

 

echo "</pre>";
print_r( $_POST );
echo "</pre>";

 

veja o que ele está retornando, para trabalhar com os valores, use foreach()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quero enviar por POST....para uma pagina chamada salva.php

 

e quero saber tambem na pagina que vai receber o post como tratar isso, ou seja....

 

 

como eu sei que ele só vai mudar exatamente aquele que esta selecionado....

 

 

 

o que tu quer que seja enviado por POST, o que tu quer manipular, entende ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tu sabe fazer um formulário ?

 

<form action="[b]tua url[/b]" method="post">
 <!-- aqui os checkboxes -->
 <input type="submit" value="Cadastrar">
</form>

 

agora no php, tu faz assim:

 

print_r( $_POST ); e ve o que ele mostra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o exemplo minha pagina está mais ou menos organizada assim....

 

 

sou iniciante em PHP estou aprendendo!

 

<html>

</head>

</head>

<body>

<form name="form1" method="POST" action="SALVAR.php">

<table>

<TR>

<td>quantidade produto1<td>

<td>status<td>

<tr>

// exibir dados da tabela do mysql...

<?php

while($l = mysql_fetch_array($resultado)) {

$qtdproduto1 = $l["qtdproduto1"];//recebe do meu banco as quantidade

$status = $l["status"] // recebe do meu banco o status atual do produto

$numerocompra = $l["numerocompra"];

 

echo"

<tr>".

"<td>".$qtdproduto1. "<td>". //exibe os valores(quantidades)

"<td>"."<input name=\"caixa[ ]\" type=\"checkbox\" value=\"Enviado\"/>"."</td>". //exibe a caixa de checkbox para ser selecionada

"<td>"."$status"."</td>". //Exibe o Status atual

"</tr>\n";

}

?>

</table>

</form>

</body>

</html>

 

 

O meu IMPUT checkbox que está em negrito aqui no exemplo está correta?

como faço a pagina salvar.php?

 

tu sabe fazer um formulário ?

 

<form action="[b]tua url[/b]" method="post">
 <!-- aqui os checkboxes -->
 <input type="submit" value="Cadastrar">
</form>

 

agora no php, tu faz assim:

 

print_r( $_POST ); e ve o que ele mostra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

apareceu esse resultado

 

Array ( [enviar] => enviar )

o que é isso?

 

Separe html de php

 

faça o html no index.html e o php em salva.php

 

e depois utilize o que eu já havia explicado.

 

com todos os checkbox selecionados apareceu isso!

 

Array ( [caixa] => Array ( [0] => Enviado [1] => Enviado ) [enviar] => enviar )

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse é meu formulário.....

 

no final esta o que aparece como resultado apos enviar o formulario apos selecionar as 3 primeiras compras.

 

<form name="form1" method="POST" action="salvar.php">

<table>

<TR>

<td>Numero da compra<td>

<td>quantidade produto1<td>

<td>Selecione se deseja enviar<td>

<td>status<td>

<tr>

 

<?

$host = "localhost"; //computador onde o servidor de banco de dados esta instalado

$user = "root"; //seu usuario para acessar o banco

$pass = ""; //senha do usuario para acessar o banco

$banco = "test"; //banco que deseja acessar

 

$conexao = mysql_connect($host, $user, $pass) or die (mysql_error());

mysql_select_db($banco);

?>

 

 

<?php

$resultado = mysql_query("SELECT * FROM plan1");

while($l = mysql_fetch_array($resultado)) {

$qtdproduto1 = $l["qtdproduto1"];//recebe do meu banco as quantidade

$status = $l["status"]; // recebe do meu banco o status atual do produto

$numerocompra = $l["numerocompra"];

 

echo"

<tr>".

"<td>".$numerocompra. "<td>". //exibe os valores(quantidades)

"<td>".$qtdproduto1. "<td>". //exibe os valores(quantidades)

"<td>"."<input name=\"caixa[ ]\" type=\"checkbox\" value=\"Enviado\"/>"."</td>". //exibe a caixa de checkbox para ser selecionada

"<td>"."$status"."</td>". //Exibe o Status atual

"</tr>\n";

}

?>

</table>

<input name="enviar" type="submit" value="enviar">

</form>

.............................

resultado apos enviar é:

 

Array ( [caixa] => Array ( [0] => Enviado [1] => Enviado [2] => Enviado ) [enviar] => enviar )

 

 

mostre seu formulário

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque

<input name="enviar" type="submit" value="enviar">

 

Por

<button type="submit">Enviar</button>

 

No restante, está correto mesmo: só são enviados os dados que estão SELECIONADOS, só que você está colocando o valor 'Enviado' no checkbox.

O que você precisa recuperar na outra página? É isso que você deve colocar no atributo 'value' do checkbox...

Compartilhar este post


Link para o post
Compartilhar em outros sites

como seria a pagina que receberá esse array?

na hora de fazer o update eu sei mais receber o array eu nao sei como faz...

 

como falei acima sou novato...quero saber como seria os codigos da pagina salvar.php....

 

 

 

 

Troque

<input name="enviar" type="submit" value="enviar">

 

Por

<button type="submit">Enviar</button>

 

No restante, está correto mesmo: só são enviados os dados que estão SELECIONADOS, só que você está colocando o valor 'Enviado' no checkbox.

O que você precisa recuperar na outra página? É isso que você deve colocar no atributo 'value' do checkbox...

 

COMO RECEBER UM ARRAY?

RECEBO ISSO EM UMA VARIÁVEL SIMPLES, OU TEM MAIS COISA POR TRÁS?

 

COMO RECEBER UM ARRAY?

RECEBO ISSO EM UMA VARIÁVEL SIMPLES, OU TEM MAIS COISA POR TRÁS?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, você recebe um array PHP mesmo.

Você pode percorrê-lo com um loop for ou foreach.

 

Só que você tem que colocar os valores que você precisa no atributo 'value' do input invés da string 'selecionado'... Provavelmente é o ID do produto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei fazer isso pode me dar um exemplo?

 

Então cara, você recebe um array PHP mesmo.

Você pode percorrê-lo com um loop for ou foreach.

 

Só que você tem que colocar os valores que você precisa no atributo 'value' do input invés da string 'selecionado'... Provavelmente é o ID do produto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim:

<?php
$resultado = mysql_query("SELECT * FROM plan1");
while($l = mysql_fetch_array($resultado)) {
$id_produto = $l["NOME DO CAMPO QUE GUARDA O ID DO PRODUTO"];
$qtdproduto1 = $l["qtdproduto1"];//recebe do meu banco as quantidade
$status = $l["status"]; // recebe do meu banco o status atual do produto
$numerocompra = $l["numerocompra"];

echo"
<tr>".
"<td>".$numerocompra. "<td>". //exibe os valores(quantidades)
"<td>".$qtdproduto1. "<td>". //exibe os valores(quantidades)
"<td>"."<input name=\"caixa[ ]\" type=\"checkbox\"  value=\"$id_produto\"/>"."</td>". //exibe a caixa de checkbox para  ser selecionada
"<td>"."$status"."</td>". //Exibe o Status atual
"</tr>\n"; 
}
?>   

 

Depois disso, você pega os dados que vêm do form e atualiza cada um deles:

 

$dados = $_POST['caixa'];
foreach($dados as $each){
 mysql_query('UPDATE NOME_DA_TABELA SET NOME_DO_CAMPO_STATUS="Enviado" WHERE NOME_DO_CAMPO_ID = '.$each);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza muito obrigado...eu resolvi também o problema com isso daqui....qual é o melhor metodo?

 

<?php

 

$qtd = count($_POST['caixa']);

$i=0;

foreach($_POST['caixa'] as $a0=>$key){

$var[$i] = $key;

$i++;

}

 

for($i=0; $i<$qtd; $i++){

echo $var[$i]."</br>";

mysql_query("UPDATE plan1 SET status='$var[$i]' WHERE numerocompra='$var[$i]' ") or die(mysql_error());

 

 

}

mysql_close($conexao);

header("Location:teste.php");

?>

 

 

Assim:

<?php
$resultado = mysql_query("SELECT * FROM plan1");
while($l = mysql_fetch_array($resultado)) {
$id_produto = $l["NOME DO CAMPO QUE GUARDA O ID DO PRODUTO"];
$qtdproduto1 = $l["qtdproduto1"];//recebe do meu banco as quantidade
$status = $l["status"]; // recebe do meu banco o status atual do produto
$numerocompra = $l["numerocompra"];

echo"
<tr>".
"<td>".$numerocompra. "<td>". //exibe os valores(quantidades)
"<td>".$qtdproduto1. "<td>". //exibe os valores(quantidades)
"<td>"."<input name=\"caixa[ ]\" type=\"checkbox\"  value=\"$id_produto\"/>"."</td>". //exibe a caixa de checkbox para  ser selecionada
"<td>"."$status"."</td>". //Exibe o Status atual
"</tr>\n"; 
}
?>   

 

Depois disso, você pega os dados que vêm do form e atualiza cada um deles:

 

$dados = $_POST['caixa'];
foreach($dados as $each){
 mysql_query('UPDATE NOME_DA_TABELA SET NOME_DO_CAMPO_STATUS="Enviado" WHERE NOME_DO_CAMPO_ID = '.$each);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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