0
Hello,
I’m having trouble rescuing by $_POST
after submitting the form dynamic field values added with jQuery
.
I’m getting popular selects of the same line and everything is working, the big problem is: When I try to get all the information by POST
after submitting the form, only the first line information is displayed.
HTML code
<form action = "abrir-inscricoes.php" method = "post">
<tr><th>Nível</th>
<th>Programa</th>
<th>Semestre</th>
<th>Ano</th>
<th>Data Inicial</th>
<th>Data Final</th>
</tr>
<tbody style="background-color: #7AA3CC;">
<tr style="background-color: #7AA3CC;" class="linha">
<td>
<select class="select_nivel" name="niveis[]">
<option value="" disabled selected style="display:none">Nivel</option>
<?php
$qtdreg = sizeof($niveis);
for ($i=0; $i<$qtdreg; $i++) {
echo "<option value=\"".$niveis[$i]['id']."\">".$niveis[$i]['descricao']."</option>";
}
?>
</select>
</td>
<td><select class="select_programa" name="programas[]">
<option value="" disabled selected style="display:none">Programa</option>
</select>
</td>
<td>
<select class="select_semestre" name="semestres[]">
<option value="" style="display:none" disabled selected>Semestre</option>
<option value="1">Primeiro</option>
<option value="2">Segundo</option>
</select>
</td>
<td>
<select class="select_ano" name="anos[]">
<option value="" style="display:none" disabled selected>Ano</option>
<option value="<?= $ano ?>" ><?= $ano ?></option>
<option value="<?= $ano + 1 ?>" ><?= $ano + 1 ?></option>
</select>
</td>
<td><input type="text" class="dt_inicial" name="dt_iniciais[]" style="width: 92px;" value=""></td>
<td><input type="text" class="dt_final" name="dt_finais[]" style="width: 92px" value=""></td>
</tr>
<tr class="adicionar"><td><a style="cursor:pointer" id="adicionar">+ Alterar outra inscrição</a></td>
<td><a style="cursor:pointer" id="alterar_tudo">+ Alterar todas as inscrições</a></td></tr>
<tr style="background-color: #7AA3CC;">
<td><input type="submit" class="botao-abrir-inscricao" value="Enviar"></td>
</tr>
<tr style="background-color: #99ddff;">
</tr>
</tbody>
</form>
Code jQuery
to add fields:
$('#informacoes').on('click',"#adicionar", function(){
var linha = $('.linha').eq(0).clone();
linha.find('select').val('');
$('.adicionar').before(linha);
});
Trying to display $_POST values:
if (isset($_POST["programas"]))
var_dump($_POST);
Thank you in advance!
HTML GENERATED AFTER ADDING 1 OPTION
<tbody style="background-color: #7AA3CC;">
<tr style="background-color: #7AA3CC;" class="linha">
<td>
<select class="select_nivel" name="niveis[]">
<option value="" disabled="" selected="" style="display:none">Nivel</option>
<option value="1">Mestrado</option><option value="2">Doutorado</option><option value="3">Especial</option> </select>
</td>
<td><select class="select_programa" name="programas[]">
<option value="" disabled="" selected="" style="display:none">Programa</option>
</select>
</td>
<td>
<select class="select_semestre" name="semestres[]">
<option value="" style="display:none" disabled="" selected="">Semestre</option>
<option value="1">Primeiro</option>
<option value="2">Segundo</option>
</select>
</td>
<td>
<select class="select_ano" name="anos[]">
<option value="" style="display:none" disabled="" selected="">Ano</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
</select>
</td>
<td><input type="text" class="dt_inicial" name="dt_iniciais[]" style="width: 92px;" value=""></td>
<td><input type="text" class="dt_final" name="dt_finais[]" style="width: 92px" value=""></td>
</tr>
<tr style="background-color: #7AA3CC;" class="linha">
<td>
<select class="select_nivel" name="niveis[]">
<option value="" disabled="" selected="" style="display:none">Nivel</option>
<option value="1">Mestrado</option><option value="2">Doutorado</option><option value="3">Especial</option> </select>
</td>
<td><select class="select_programa" name="programas[]">
<option value="" disabled="" selected="" style="display:none">Programa</option>
</select>
</td>
<td>
<select class="select_semestre" name="semestres[]">
<option value="" style="display:none" disabled="" selected="">Semestre</option>
<option value="1">Primeiro</option>
<option value="2">Segundo</option>
</select>
</td>
<td>
<select class="select_ano" name="anos[]">
<option value="" style="display:none" disabled="" selected="">Ano</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
</select>
</td>
<td><input type="text" class="dt_inicial" name="dt_iniciais[]" style="width: 92px;" value=""></td>
<td><input type="text" class="dt_final" name="dt_finais[]" style="width: 92px" value=""></td>
</tr><tr style="background-color: #7AA3CC;" class="linha">
<td>
<select class="select_nivel" name="niveis[]">
<option value="" disabled="" selected="" style="display:none">Nivel</option>
<option value="1">Mestrado</option><option value="2">Doutorado</option><option value="3">Especial</option> </select>
</td>
<td><select class="select_programa" name="programas[]">
<option value="" disabled="" selected="" style="display:none">Programa</option>
</select>
</td>
<td>
<select class="select_semestre" name="semestres[]">
<option value="" style="display:none" disabled="" selected="">Semestre</option>
<option value="1">Primeiro</option>
<option value="2">Segundo</option>
</select>
</td>
<td>
<select class="select_ano" name="anos[]">
<option value="" style="display:none" disabled="" selected="">Ano</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
</select>
</td>
<td><input type="text" class="dt_inicial" name="dt_iniciais[]" style="width: 92px;" value=""></td>
<td><input type="text" class="dt_final" name="dt_finais[]" style="width: 92px" value=""></td>
</tr><tr class="adicionar"><td><a style="cursor:pointer" id="adicionar">+ Alterar outra inscrição</a></td>
<td><a style="cursor:pointer" id="alterar_tudo">+ Alterar todas as inscrições</a></td></tr>
<tr style="background-color: #7AA3CC;">
<td><input type="submit" class="botao-abrir-inscricao" value="Enviar"></td>
</tr>
<tr style="background-color: #99ddff;">
</tr>
</tbody>
Only comes the last value? that’s the problem?
– rray
Only takes the value of the first line, which was not dynamically added (only dynamically populated).
– Gabrielly
To send a multiple value field you add brackets in name. make a test and post the html generated by this javascript.
– rray
I used the clasps, it’s in the code
– Gabrielly
includes the generated html you requested
– Gabrielly
You used the Ajax tag, but I didn’t see any ajax in your code, use tags only relevant to the problem, understand as a constructive criticism.
– Guilherme Nascimento
It all seems on day .... at some point you remove the
disabled
of the form fields?– rray
It has ajax yes, I am populating the selects via ajax, but I did not put here because this is working!
– Gabrielly
Remove yes! So much so that I get popular the selects dynamically, the only problem is being to rescue by post!
– Gabrielly