Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com a seguinte duvida quanto ao cadastro de dados de arrays multidimensionais
Meu problema é este: Tenho uma pagina que tem a opção do cliente escolher as datas em um calendário (várias datas). Feito isso, ele passa esses dados por POST em forma de array e é ai que mora o problema.
Abaixo das datas, tenho a opção de escolher vários horários diferentes que tem que ser agregados junto aquela data, para que depois seja cadastrado no banco de dados tudo de uma vez.
Como faço para que o PHP saiba a data, e todos os horários daquela data sejam inseridos corretamente no banco de dados mysql?
Entendi, tenho mais umas duvidas, consegui trazer os dados do select por $_POST, porem quero trazer ordenado. Ex: Data: 07/09/2016 com os horarios selecionados: 08:00, 09:00 e 10:00 e dia 10/09/2016 com os horarios: 12:00, 01:00 e 02:00 e cadastrar todos esses dados ordenadamente. Como faço? Aqui Abaixo tenho o codigo da pagina dos horario e a pagina que recebe o array.
select dos horarios:
<script type="text/javascript" src="jquery/jquery.js"></script>
<script type="text/javascript" src="timepicker/js/jquery.select-multiple.js"></script>
<link href="timepicker/css/select-multiple.css" rel="stylesheet">
<script>
$(function(){
$('.pre-selected-options').selectMultiple();
});
</script>
<form id="selected" name="selected[]" action="teste.php" method="post">
<?php
include "search.php";
$input = $_POST['input01'];
$arr1 = str_split($input, 10);
?>
<div class="container-fluid">
<div class="row"><?php
while (list(, $value) = each($arr1)) {
?>
<div class="col-lg-3">
<h3><b><?php echo $value;?></b></h3>
<input type="hidden" id="data" name="data[]" value="<?php echo $value;?>">
<select id='horario' class="pre-selected-options" name="horario[]" multiple='multiple'>
<option value='1'>08:00</option>
<option value='2'>09:00</option>
<option value='3'>10:00</option>
<option value='4'>11:00</option>
<option value='5'>12:00</option>
<option value='6'>13:00</option>
<option value='7'>14:00</option>
<option value='8'>15:00</option>
<option value='9'>16:00</option>
<option value='10'>17:00</option>
<option value='11'>18:00</option>
<option value='12'>19:00</option>
</select>
</div>
<?php } ?>
<button onClick="$('#selected').submit()" name="btn[]">enviar</button>
</div>
</div></form>
Recebe os arrays :
<?php
if(!empty($_POST['horario']) && is_array($_POST['horario'])){
foreach($_POST['horario'] as $item) {
echo $item;
}
}
?>
o código não está completo pois não sei como continuar para trazer os dados ordenadamente.bom uma maneira de fazer isso é criando uma outra variavel que vai receber os dados concatenado (2016-01-01 00:00:00) e depois ver como ordenar array em php
Qual a necessidade de cadastrá-los ordenadamente? Se é somente por questão de exibição, você pode resolver isso na consulta usando ORDER BY.
Nesse caso, é importante estudar sobre a Normalização de dados. Sabendo a 1FN é o suficiente para resolver o seu problema.
Já, no PHP, trate os inputs como array:
http://forum.imasters.com.br/topic/462549-resolvidoretornar-array-de-inputs-com-mesmo-nome/?p=1832412