Como faço para colocar mais uma campo igual o mvp_entrega, tentei aqui mas apresento erro
<?php
include_once '../cadastro/conexao.php';
$id_metas = filter_input(INPUT_POST, 'id_metas', FILTER_SANITIZE_STRING);
$mvp_entrega = $_POST["mvp_entrega"];
$cont_insert = false;
foreach ($mvp_entrega as $mvp_entrega) {
$result_aula = "INSERT INTO entregas (id_metas, mvp_entrega) VALUES (:id_metas, :mvp_entrega)";
$insert_aula = $conn->prepare($result_aula);
$insert_aula->bindParam(':id_metas', $id_metas);
$insert_aula->bindParam(':mvp_entrega', $mvp_entrega);
if ($insert_aula->execute()) {
$cont_insert = true;
} else {
$cont_insert = false;
}
}
if ($cont_insert) {
echo "<p style='color:green;'>Cadastrado com Sucesso</p>";
} else {
echo "<p style='color:red;'>Erro ao cadastrar</p>";
}
<center>
<form class="form" id="add-aula" method="POST">
<div class="section">
<div class="control-group">
<div class="input-group">
<span style="min-width: 85px; font-weight: bold; border: 1px solid #ccc; border-radius: 4px;" class="input-group-addon">Meta: <?php if(isset($row_msg_cont['nome_meta'])){ echo $row_msg_cont['nome_meta']; } ?></span>
</div>
<input class="form-control" type="hidden" readonly name="id_metas" value="<?php if(isset($row_msg_cont['id_metas'])){ echo $row_msg_cont['id_metas']; } ?>">
<div class="input-group">
<span style="min-width: 170px; font-weight: bold;" class="input-group-addon">MVP</span>
<span style="min-width: 200px; font-weight: bold;" class="input-group-addon">Entrega</span>
<span style="min-width: 160px; font-weight: bold;" class="input-group-addon">Data</span>
<span style="min-width: 100px; font-weight: bold;" class="input-group-addon">Status</span>
<span style="min-width: 100px; font-weight: bold;" value="aa" class="input-group-addon">Peso (%)</span>
</div>
<div style="display: block; display: flow-root;" class="input-group" id="formularios">
<input style="max-width: 170px; height: 63px; text-align: center;" class="form-control" type="text" name="mvp_entrega[]" placeholder="Produto viável mínimo">
<input style="max-width: 200px; height: 63px; text-align: center;" class="form-control" type="text" name="nome_entrega[]" placeholder="Descreva a Entrega">
<input style="max-width: 160px; height: 63px; text-align: center;" class="form-control" type="date" name="data_entrega[]" onkeypress="$(this).mask('000')">
<select style="max-width: 100px; height: 63px; text-align: center;" class="form-control" name="status_entrega[]">
<option value="" selected>--</option>
<option value="Entregue">Entregue</option>
<option value="A Entregar">A Entregar</option>
<option value="Em Atraso">Em Atraso</option>
</select>
<input style="max-width: 65px; height: 63px; text-align: center;" class="form-control" type="text" name="peso_entrega[]" id="peso_entrega" placeholder="Peso" onkeypress="$(this).mask('000')">
<span style=" height: 63px; width: 34px; color: #fff;border-radius: 4px; border-top-left-radius: 0px;border-bottom-left-radius: 0px;" class="input-group-addon btn-success" type="button" id="add-campo">+</span>
<input name="resultado_pesos" id="resultado_pesos" value="" type="text">
<span id="msg" name="msg"></span>
</div>
</div>
<div class="control-group">
<span class="btn btn-primary btn-block" type="button" name="CadAulas" id="CadAulas" value="Cadastrar">Cadastrar</span>
</div>
</div>
</form>
</div>
</center>
<script>
$(document).ready(function () {
var cont = 1;
//https://api.jquery.com/click/
$('#add-campo').click(function () {
cont++;
//https://api.jquery.com/append/
$('#formulario').append('<div style="margin-top: 16px;" id="campo' + cont + '" class="input-group"><span style="width: 140px;" class="input-group-addon">Descreva a Meta:</span><input style="height: 34px; width: 278px" type="text" class="form-control" id="inlineCheckbox1" name="nome_meta[]" placeholder="Descreva a Meta"><span style="color: #fff; height: 34px; min-width: 34px" class="btn-apagar input-group-addon btn btn-danger" type="button" id="' + cont + '">-</span></div>');
});
$('form').on('click', '.btn-apagar', function () {;
var button_id = $(this).attr("id");
$('#campo' + button_id + '').remove();
});
$("#CadAulas").click(function () {
//Receber os dados do formulário
var dados = $("#add-aula").serialize();
$.post("insert.php", dados, function (retorna) {
$("#msg").slideDown('slow').html(retorna);
//Limpar os campos
//$('#add-aula')[0].reset();
colocarMsg();
//Apresentar a mensagem leve
retirarMsg();
});
});
//Retirar a mensagem após 1700 milissegundos
function retirarMsg() {
setTimeout(function () {
$("#msg").slideUp('slow', function () {});
}, 2700);
}
});
</script>
O que você tentou? Qual erro deu?
usando esse insert
<?php
include_once '../cadastro/conexao.php';
$id_metas = filter_input(INPUT_POST, 'id_metas', FILTER_SANITIZE_STRING);
$mvp_entrega = $_POST["mvp_entrega"];
$nome_entrega = $_POST["nome_entrega"];
$cont_insert = false;
foreach ($mvp_entrega as $mvp_entrega){
$result_aula = "INSERT INTO entregas (id_metas, mvp_entrega, nome_entrega) VALUES (:id_metas, :mvp_entrega, :nome_entrega)";
$insert_aula = $conn->prepare($result_aula);
$insert_aula->bindParam(':id_metas', $id_metas);
$insert_aula->bindParam(':mvp_entrega', $mvp_entrega);
$insert_aula->bindParam(':nome_entrega', $nome_entrega);
if ($insert_aula->execute()) {
$cont_insert = true;
} else {
$cont_insert = false;
}
}
if ($cont_insert) {
echo "<p style='color:green;'>Cadastrado com Sucesso</p>";
} else {
echo "<p style='color:red;'>Erro ao cadastrar</p>";
}
deu esse erro
Warning : Array to string conversion in C:\xampp\htdocs\planejamento\admin\monitora\insert.php on line 16
Cadastrado com Sucesso
Hm, parece que “nome_entrega” é um array também. Poderia iterar pelos dois arrays.
Tenta assim:
for ($i = 0; $i < count($mvp_entrega) && $i < count($nome_entrega); $i++) {
$entrega = $mvp_entrega[$i];
$nome = $nome_entrega[$i];
$result_aula = "INSERT INTO entregas (id_metas, mvp_entrega, nome_entrega) VALUES (:id_metas, :entrega, :nome)";
//resto
}
1 curtida
RoinujNosde:
nome_entrega
<?php
include_once '../cadastro/conexao.php';
$id_metas = filter_input(INPUT_POST, 'id_metas', FILTER_SANITIZE_STRING);
$mvp_entrega = $_POST["mvp_entrega"];
$nome_entrega = $_POST["nome_entrega"];
$cont_insert = false;
for ($i = 0; $i < count($mvp_entrega) && $i < count($nome_entrega); $i++) {
$entrega = $mvp_entrega[$i];
$nome = $nome_entrega[$i];
$result_aula = "INSERT INTO entregas (id_metas, mvp_entrega, nome_entrega) VALUES (:id_metas, :entrega, :nome)";
$insert_aula = $conn->prepare($result_aula);
$insert_aula->bindParam(':id_metas', $id_metas);
$insert_aula->bindParam(':mvp_entrega', $mvp_entrega);
$insert_aula->bindParam(':nome_entrega', $nome_entrega);
if ($insert_aula->execute()) {
$cont_insert = true;
} else {
$cont_insert = false;
}
}
if ($cont_insert) {
echo "<p style='color:green;'>Cadastrado com Sucesso</p>";
} else {
echo "<p style='color:red;'>Erro ao cadastrar</p>";
}
apresentou esse erro:
Warning : Array to string conversion in C:\xampp\htdocs\planejamento\admin\monitora\insert.php on line 18
Warning : Array to string conversion in C:\xampp\htdocs\planejamento\admin\monitora\insert.php on line 19
**Fatal error** : Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\planejamento\admin\monitora\insert.php:20 Stack trace: #0 C:\xampp\htdocs\planejamento\admin\monitora\insert.php(20): PDOStatement->execute() #1 {main} thrown in **C:\xampp\htdocs\planejamento\admin\monitora\insert.php** on line **20**
Troca $mvp_entrega por $entrega e $nome_entrega por $nome
Warning : Undefined array key “mvp” in C:\xampp\htdocs\planejamento\admin\monitora\insert.php on line 6
Warning : Undefined array key “nome” in C:\xampp\htdocs\planejamento\admin\monitora\insert.php on line 7
Fatal error : Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, null given in C:\xampp\htdocs\planejamento\admin\monitora\insert.php:10 Stack trace: #0 {main} thrown in C:\xampp\htdocs\planejamento\admin\monitora\insert.php on line 10
<?php
include_once '../cadastro/conexao.php';
$id_metas = filter_input(INPUT_POST, 'id_metas', FILTER_SANITIZE_STRING);
$mvp = $_POST["mvp"];
$nome = $_POST["nome"];
$cont_insert = false;
for ($i = 0; $i < count($mvp) && $i < count($nome); $i++) {
$entrega = $mvp[$i];
$nome = $nome[$i];
$result_aula = "INSERT INTO entregas (id_metas, mvp, nome) VALUES (:id_metas, :mvp, :nome)";
$insert_aula = $conn->prepare($result_aula);
$insert_aula->bindParam(':id_metas', $id_metas);
$insert_aula->bindParam(':mvp', $mvp);
$insert_aula->bindParam(':nome', $nome);
if ($insert_aula->execute()) {
$cont_insert = true;
} else {
$cont_insert = false;
}
}
if ($cont_insert) {
echo "<p style='color:green;'>Cadastrado com Sucesso</p>";
} else {
echo "<p style='color:red;'>Erro ao cadastrar</p>";
}
<?php
include_once '../cadastro/conexao.php';
$id_metas = filter_input(INPUT_POST, 'id_metas', FILTER_SANITIZE_STRING);
$mvp_entrega = $_POST["mvp_entrega"];
$nome_entrega = $_POST["nome_entrega"];
$cont_insert = false;
for ($i = 0; $i < count($mvp_entrega) && $i < count($nome_entrega); $i++) {
$entrega = $mvp_entrega[$i];
$nome = $nome_entrega[$i];
$result_aula = "INSERT INTO entregas (id_metas, mvp_entrega, nome_entrega) VALUES (:id_metas, :entrega, :nome)";
$insert_aula = $conn->prepare($result_aula);
$insert_aula->bindParam(':id_metas', $id_metas);
$insert_aula->bindParam(':entrega', $entrega);
$insert_aula->bindParam(':nome', $nome);
if ($insert_aula->execute()) {
$cont_insert = true;
} else {
$cont_insert = false;
}
}
if ($cont_insert) {
echo "<p style='color:green;'>Cadastrado com Sucesso</p>";
} else {
echo "<p style='color:red;'>Erro ao cadastrar</p>";
}
1 curtida
RoinujNosde:
<?php include_once '../cadastro/conexao.php'; $id_metas = filter_input(INPUT_POST, 'id_metas', FILTER_SANITIZE_STRING); $mvp_entrega = $_POST["mvp_entrega"]; $nome_entrega = $_POST["nome_entrega"]; $cont_insert = false; for ($i = 0; $i < count($mvp_entrega) && $i < count($nome_entrega); $i++) { $entrega = $mvp_entrega[$i]; $nome = $nome_entrega[$i]; $result_aula = "INSERT INTO entregas (id_metas, mvp_entrega, nome_entrega) VALUES (:id_metas, :entrega, :nome)"; $insert_aula = $conn->prepare($result_aula); $insert_aula->bindParam(':id_metas', $id_metas); $insert_aula->bindParam(':entrega', $entrega); $insert_aula->bindParam(':nome', $nome); if ($insert_aula->execute()) { $cont_insert = true; } else { $cont_insert = false; } } if ($cont_insert) { echo "Cadastrado com Sucesso
"; } else { echo "Erro ao cadastrar
"; }
foi …
se eu quiser adiconar mais por exemplo “data_entrega”
Só fazer algo parecido.
Dentro do for:
$data = $data_entrega[$i];
E usar $data nas queries.
seria assim ?
<?php
include_once '../cadastro/conexao.php';
$id_metas = filter_input(INPUT_POST, 'id_metas', FILTER_SANITIZE_STRING);
$mvp_entrega = $_POST["mvp_entrega"];
$nome_entrega = $_POST["nome_entrega"];
$data_entrega = $_POST["data_entrega"];
$cont_insert = false;
for ($i = 0; $i < count($mvp_entrega) && $i < count($nome_entrega) && $i < count($data_entrega); $i++) {
$entrega = $mvp_entrega[$i];
$nome = $nome_entrega[$i];
$data = $data_entrega[$i];
$result_aula = "INSERT INTO entregas (id_metas, mvp_entrega, nome_entrega, data_entrega) VALUES (:id_metas, :entrega, :nome :data)";
$insert_aula = $conn->prepare($result_aula);
$insert_aula->bindParam(':id_metas', $id_metas);
$insert_aula->bindParam(':entrega', $entrega);
$insert_aula->bindParam(':nome', $nome);
$insert_aula->bindParam(':data', $data);
if ($insert_aula->execute()) {
$cont_insert = true;
} else {
$cont_insert = false;
}
}
if ($cont_insert) {
echo "<p style='color:green;'>Cadastrado com Sucesso</p>";
} else {
echo "<p style='color:red;'>Erro ao cadastrar</p>";
}
Tá faltando uma vírgula aqui.
De resto parece que tá certo.
Todos os arrays tem o mesmo tamanho?
Se sim, pode reduzir isso para $i < count($mvp_entrega)
oque voce quer dizer com tamanho ?
Digamos que tem o array [“Maçã”, “Banana”, “Melancia”].
A contagem de items/o tamanho é 3.
E você tá trabalhando com arrays aí.
<form class="form" id="add-aula" method="POST">
<div class="section">
<div class="control-group">
<div class="input-group">
<span style="min-width: 85px; font-weight: bold; border: 1px solid #ccc; border-radius: 4px;" class="input-group-addon">Meta: <?php if(isset($row_msg_cont['nome_meta'])){ echo $row_msg_cont['nome_meta']; } ?></span>
</div>
<input class="form-control" type="hidden" readonly name="id_metas" value="<?php if(isset($row_msg_cont['id_metas'])){ echo $row_msg_cont['id_metas']; } ?>">
<div class="input-group">
<span style="min-width: 170px; font-weight: bold;" class="input-group-addon">MVP</span>
<span style="min-width: 200px; font-weight: bold;" class="input-group-addon">Entrega</span>
<span style="min-width: 160px; font-weight: bold;" class="input-group-addon">Data</span>
<span style="min-width: 100px; font-weight: bold;" class="input-group-addon">Status</span>
<span style="min-width: 100px; font-weight: bold;" value="aa" class="input-group-addon">Peso (%)</span>
</div>
<div style="display: block; display: flow-root;" class="input-group" id="formularios">
<input style="max-width: 170px; height: 63px; text-align: center;" class="form-control" type="text" name="mvp_entrega[]" placeholder="Produto viável mínimo">
<input style="max-width: 200px; height: 63px; text-align: center;" class="form-control" type="text" name="nome_entrega[]" placeholder="Descreva a Entrega">
<input style="max-width: 160px; height: 63px; text-align: center;" class="form-control" type="date" name="data_entrega[]" onkeypress="$(this).mask('000')">
<select style="max-width: 100px; height: 63px; text-align: center;" class="form-control" name="status_entrega[]">
<option value="" selected>--</option>
<option value="Entregue">Entregue</option>
<option value="A Entregar">A Entregar</option>
<option value="Em Atraso">Em Atraso</option>
</select>
<input style="max-width: 65px; height: 63px; text-align: center;" class="form-control" type="text" name="peso_entrega[]" id="peso_entrega" placeholder="Peso" onkeypress="$(this).mask('000')">
<span style=" height: 63px; width: 34px; color: #fff;border-radius: 4px; border-top-left-radius: 0px;border-bottom-left-radius: 0px;" class="input-group-addon btn-success" type="button" id="add-campo">+</span>
</div>
<span id="msg" name="msg"></span>
</div>
<div class="control-group">
<span class="btn btn-primary btn-block" type="button" name="CadAulas" id="CadAulas" value="Cadastrar">Cadastrar</span>
</div>
</div>
</form>
olha ai como está meu form, estou adicionando aqui, nao deu problema…
Então respondendo a minha pergunta, os arrays são do mesmo tamanho.
Pode fazer aquela forma reduzida no for se quiser.