Olá Srs,
Não tenho muito conhecimento em PHP e estou com um formulário onde o usuário tem alguns campos para preencher e gravar no banco de dados SQL, sendo que um campo deste form será dinâmico onde o usuário poderá adicionar quantos campos forem necessários a partir de um botão "+".
Nome do campo dinâmico: chavenf
Segue abaixo o código do formulário:
<form method="POST" action="../includes/mf-processa.php">
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-4">
<input type="hidden" name="usuario[]" value="<?php echo $_SESSION['usuarioNome']; ?>" />
<select class="form-control" id="tipo" name="tipo[]">
<option selected>Tipo</option>
<option>1</option>
<option>2</option>
</select>
</div>
<div class="form-group col-md-4">
<select class="form-control" id="prioridade" name="prioridade[]">
<option selected>Prioridade</option>
<option>Alta</option>
<option>Padrão</option>
</select>
</div>
<div class="form-group col-md-4">
<input class="form-control" type="text" name="fornecedor[]" placeholder="Fornecedor" id="fornecedor">
</div>
</div>
<div style="display:none;" class="form-row" id="chavecte">
<div class="form-group col-md-12">
<label>Chave </label>
<input class="form-control" type="text" name="chavecte[]">
</div>
</div>
<div class="form-row" id="row-nota">
<div class="form-group col-md-12">
<label>Chave da NF </label>
<input class="form-control" type="text" name="chavenf[]" id="chavenf">
</div>
</div>
<div style="display:none;" class="form-row" id="add-field-nf">
<div class="form-group col-md-2">
<button type="button" class="btn btn-primary" id="add"> + </button>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-2">
<input type="submit" class="btn btn-primary" value="Cadastrar">
</div>
</div>
</div>
</form>
<script>
$( "#add" ).click(function() {
$( "#row-nota" ).append('<div class="form-group col-md-12"><input class="form-control" type="text" name="chavenf[]" id="chavenf"></div>');
});
</script>
Abaixo o arquivo que conecta e insere no BD, "mf-processa.php"
<?php
session_start();
include_once("conexao.php");
$prioridade = filter_input(INPUT_POST, 'prioridade', FILTER_SANITIZE_STRING);
$usuarioentrada = filter_input(INPUT_POST, 'usuario', FILTER_SANITIZE_STRING);
$tipofrete = filter_input(INPUT_POST, 'tipofrete', FILTER_SANITIZE_STRING);
$fornecedor = filter_input(INPUT_POST, 'fornecedor', FILTER_SANITIZE_STRING);
$chavenf = preg_replace("/\s+/", "", filter_input(INPUT_POST, 'chavenf', FILTER_SANITIZE_STRING));
$chavecte = preg_replace("/\s+/", "", filter_input(INPUT_POST, 'chavecte', FILTER_SANITIZE_STRING));
$nNF = substr($chavenf, 25, 9);
$timenow = date('d-m-Y');
$timenow .= ' '.date('H:i:s');
$qtnotas = count($chavenf)-1;
for ($f = 0; $f <= $qtnotas; $f++)
{
$sql = "INSERT INTO base (data, usuarioentrada, prioridade, tipofrete, nf, fornecedor, chavenf, chavecte, acao, dataretorno, usuariofiscal) VALUES (
'.$timenow[$f].',
'.$usuarioentrada[$f].',
'.$prioridade[$f].',
'.$tipofrete[$f].',
'.$nNF[$f].',
'.$fornecedor[$f].',
'.$chavenf[$f].',
'.$chavecte[$f].',
'',
'',
''
)" or die ("<center>Erro: " . mysqli_error() . "</center>");
$insert = mysqli_query($conn, $sql);
if(mysqli_insert_id($conn)){
$_SESSION['msgrec'] = "<p style='color:green;'>Nota cadastrada com sucesso!</p>";
header("Location: ../recebimento/recebimento.php");
}else{
$_SESSION['msgrec'] = "<p style='color:red;'>Nota não cadastrada com sucesso!</p>";
header("Location: ../recebimento/recebimento.php");
}
Veja o erro retornado na página.. Já tentei alterar o código e mesmo assim não consegui efetuar a inserção dos dados no BD.
( ! ) Warning: count(): Parameter must be an array or an object that implements Countable in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 31
Call Stack
#
Time
Memory
Function
Location
1
0.0001
411528
{main}( )
...\mf-processarecebimento.php:0
( ! ) Notice: Uninitialized string offset: 0 in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 41
Call Stack
#
Time
Memory
Function
Location
1
0.0001
411528
{main}( )
...\mf-processarecebimento.php:0
( ! ) Notice: Uninitialized string offset: 0 in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 42
Call Stack
#
Time
Memory
Function
Location
1
0.0001
411528
{main}( )
...\mf-processarecebimento.php:0