0
The function below does not return me the expected.
I want her to return a sum and the fields with the id
colaboador , but in Javascript I get an error, and I believe it is in PHP.
select works perfectly running direct on phpMyAdmin.
public function select($id) {
$return_values = array();
try {
$sql = "SELECT SUM(custo_preco) as SOMA , custo_descricao,custo_id,custo_data,custo_mes,custo_local,custo_preco FROM tb_custo WHERE colaborador_colaborador_id= :colaborador_colaborador_id;";
$p_sql = Conexao::getInstance()->prepare($sql);
$p_sql->bindValue(':colaborador_colaborador_id', $id);
$execute = $p_sql->execute();
if ($execute) {
while ($array = $p_sql->fetch(PDO::FETCH_OBJ)) {
$return_values['linhas'].="<tr data-id='{$array->custo_id}'>"
. "<td class='actions'> "
. "<a href='#' name='botao_editar_custo' class='btn btn-primary btn-xs' data-toggle='tooltip' data-placement='top' data-original-title='Edit'><i class='fa fa-pencil'></i></a>"
. "<a href='#' name='botao_excluir_custo' class='btn btn-danger btn-xs' data-toggle='modal' data-target='#delete-modal' data-toggle='tooltip' data-placement='top' data-original-title='Delete'><i class='fa fa-times'></i></a>"
. "<td>{$array->custo_descricao}"
. "<td>" . date('d/m/Y H:i', strtotime($array->custo_data)
. "<td>{$array->custo_local}"
. "<td>{$array->custo_preco}");
}
$return_values['soma'] = $array->SOMA;
} else {
$return_values['erro'] = "Erro ao recuperar dados.";
}
return $return_values;
} catch (PDOException $e) {
return "Erro, contate o suporte!\n" . $e->getCode() . " Mensagem: " . $e->getMessage();
}
}
Javascript function
function preencher_table_custo() {
$.ajax({
url: 'formularios/custo/php/select.php',
type: 'POST',
dataType: 'json',
data: {id: $("input[name='colaborador_logado']").val()},
beforeSend: function () {
$(".formulario_geral_custo table tbody").html("<tr data-id=''><td colspan='9'><img src='./imagens/loading.gif' height='26' width='26' align='center'>");
},
success: function (data) {
alert(data.soma);
$(".formulario_geral_custo table tbody").html(data.linhas);
$(".formulario_geral_custo table tbody > tr").hover(function () {
$(this).toggleClass("hover");
});
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
$(".mensage").css("background", "#980000");
$(".mensage").text("Verifique sua conexão com a internet e tente novamente.");
fadeGeral(4000);
}
});
}
Already tried without the semicolon at the end of SELECT?
– Allan Andrade
Yes, it’s still not working
– Marlon Castro
Have you called the url (Formularios/custo/php/select.php), directly in a browser window? The return is correct in this window?
– Allan Andrade
That’s right, I do an ajax request and call the url , and the url calls the function and passes the parameters to the one on the DAO
– Marlon Castro
You are returning an HTML code through PHP, but in Javascript you are stating that it is JSON (dataType: 'json').... and this will give error.
– Allan Andrade
Yes, but in case I am returning an array, I would have to use JSON, or not?
– Marlon Castro
Array is different from JSON. Test if your JSON is correct at: http://jsonlint.com/
– Allan Andrade
Beauty. I am now in college, but tomorrow I will try. But in the case how I will return an array with several positions and access it in javascript?
– Marlon Castro
Returning data in JSON and creating HTML in JAVASCRIPT from JSON data.
– Allan Andrade
I see in the code
return $return_values;
Where does it go? Who calls this function doesecho
? what error appears in Javascript?– Sergio
I forgot to post, I have a php file that gets and returns the values, which I call in the java script URL.
`<? Php include_once ( 'dao.php'); $ Dao = new DaoCusto (); $ Resultado = $ dao-> selecione ($ _ POST [ "id"]); json_encode echo ($ resultado);
`– Marlon Castro