[Resolvido] Como salvar cada array em um registro distinto?
Olá amigos! Eu não sei se o código pertence ao JavaScript ou PHP. Irei postar aqui, mas qualquer coisa podem mover!
Estou quebrando a cabeça para salvar um array (que vem de um ajax) em cada registro! Por exemplo:
function cadastrar(){
var t = 0;
var nome = $$("#nome").val();
var medic = $$("#lista_medicamentos .item-inner");
var medicamentos = [];
medic.each(function(idx, li){
t++;
var id_med = $$(li).find(".item-id-"+t+"");
var nome_med = $$(li).find(".item-title-"+t+"");
var qnt_med = $$(li).find(".item-after-"+t+"");
medicamentos.push({"id":id_med.html(), "qnt": qnt_med.html()}); //cria o array
})
//var json = JSON.stringify(medicamentos);
var form_data = new FormData();
form_data.append('paciente', nome);
form_data.append('medicamentos', JSON.stringify(medicamentos));
$.ajax({
url: 'http://www.blocodochapolin.com.br/FP_novo/cadastrarP.php', // caminho para o script que vai processar os dados
type: 'POST',
data: form_data,
cache: false,
contentType: false,
processData: false,
success: function(response) {
console.log(response);
},
error: function(error) {
alert(xhr.response);
}
});
return false;
}
A pessoa seleciona um medicamento de um select, e uma quantidade de outro select. O array fica assim:
ID do medicamento e a quantidade dispensada.
[{"id":"2","qnt":"3"},{"id":"1","qnt":"2"}]
No PHP, estou com seguinte código:
<?php
header('Access-Control-Allow-Origin: *');
include 'init.php';
if(isset($_POST['paciente'])){
$paciente = $_POST['paciente'];
$medicamentos = json_decode($_POST['medicamentos']);
foreach($medicamentos as $key => $val) {
echo $val->id;
echo $val->qnt;
$id_med = $val->id;
$qnt = $val->qnt;
$sql_1 = "INSERT INTO dispensacao (id_paciente, id_medicamento, quantidade) VALUES ("1", "$id_med", "$qnt")";
$query_1 = $mysqli->query($sql_1);
}
}
?>
Quando envia o form, ele dá errro 500 INTERNAL SERVER ERROR.
Como posso corrigir isso, para que meu código cadastre corretamente no BD, mais de um registro?Discussão (2)
Carregando comentários...