I have a script like following code:
$("#submit").click(function(){
var dataString ={
nome : $("#nome").val(),
status : $("#status").val(),
id : $("#id").val()
};
$.ajax({
type: "POST",
url: "../vendors/php/ins_salvar_menu.php",
data: dataString,
cache : false,
success: function(data){
console.log(data.nome);
console.log(data);
if(data.type == 'add'){
$("#menu-id").append(data.menu);
} else if(data.type == 'edit'){
$('#nome_show'+data.id).html(data.nome);
$('#status_show'+data.id).html(data.status);
}
$('#nome').val('');
$('#status').val('');
$('#id').val('');
} ,error: function(xhr, status, error) {
alert(error);
},
});
});
That sends the data to a PHP page whose content is as follows:
<?php
include "../../seguranca/banco/conexao_banco.php";
include "operacaobd_php.php";
date_default_timezone_set ("America/Sao_Paulo");
$data_criacao = date('Y-m-d H:m:s');
$data_modificacao = date('Y-m-d H:m:s');
if($_POST['id'] != ''){
$tabela="categorias";
$dados = array(
'nome' => $_POST['nome'],
'status' => $_POST['status'],
'data_modificacao'=> $data_modificacao
);
$condicao = array(
'id' => $_POST['id']
);
$sql_upd_categorias_resultado = alterar($tabela, $condicao, $dados);
$arr['type'] = 'edit';
$arr['nome'] = $_POST['nome'];
$arr['status'] = $_POST['status'];
$arr['id'] = $_POST['id'];
}else{
$tabela="categorias";
$dados = array(
'nome' => $_POST['nome'],
'status' => $_POST['status'],
'data_criacao'=> $data_criacao,
'data_modificacao'=> $data_modificacao
);
$sql_ins_categorias_resultado = adicionar($tabela, $dados);
$arr['type'] = 'add';
$arr['menu'] = '<li class="dd-item dd3-item" data-id="'.$conexaobd->lastInsertId().'" >
<div class="dd-handle dd3-handle">Drag</div>
<div class="dd3-content"><span id="nome_show'.$conexaobd->lastInsertId().'">'.$_POST['nome'].'</span>
<span class="span-right">/<span id="status_show'.$conexaobd->lastInsertId().'">'.$_POST['status'].'</span>
<a class="edit-button" id="'.$conexaobd->lastInsertId().'" nome="'.$_POST['nome'].'" status="'.$_POST['status'].'" ><i class="fa fa-pencil"></i></a>
<a class="del-button" id="'.$conexaobd->lastInsertId().'"><i class="fa fa-trash"></i></a></span>
</div>';
}
return json_encode($arr);
?>
The add function:
function adicionar($adc_tabela, $adc_dados){
// Armazenas os dados do array
$adc_campos = array_keys($adc_dados);
print_r($adc_campos);
// contagem dos campos existentes
$adc_n_campos = count($adc_dados);
// Inicia a sintaxe
$adc_sintaxe = "INSERT INTO ".$adc_tabela." (";
//monta o resto da estrutura
for($adc_aux=0; $adc_aux<$adc_n_campos; $adc_aux++){
$adc_sintaxe.= $adc_campos[$adc_aux].", ";
}
//retira a ultima virgula
$adc_sintaxe = substr($adc_sintaxe, 0, -2);
// fecha os campos e adciona o VALUES na sintaxe
$adc_sintaxe .= ") VALUES (";
//adiciona os valores na sintaxe
for($adc_aux=0; $adc_aux<$adc_n_campos; $adc_aux++){
$adc_sintaxe.= ":".$adc_campos[$adc_aux].", ";
}
// Retira a ultima virgula
$adc_sintaxe = substr($adc_sintaxe, 0, -2);
// Fim da sintaxe
$adc_sintaxe .= ")";
// chama a função global para fazer conexão com o Banco de dados
global $conexaobd;
// prepara a sintaxe
$adc_preparado = $conexaobd->prepare($adc_sintaxe);
// seta os valores de cada campo
for($adc_aux=0; $adc_aux<$adc_n_campos; $adc_aux++){
/*if((!$adc_dados[$adc_campos[$adc_aux]]) AND (!$adc_dados[$adc_campos[$adc_aux]]=="0")){
$adc_dados[$adc_campos[$adc_aux]] = NULL;
}
OBS.: o IF acima buga com o 0, então se algum dos dados for ==0 ele atribui NULL, então o IF acima corrige o problema com o 0
*/
if(!$adc_dados[$adc_campos[$adc_aux]]){
if($adc_dados[$adc_campos[$adc_aux]] == "0" ){
$adc_dados[$adc_campos[$adc_aux]] = 0;
}else{
$adc_dados[$adc_campos[$adc_aux]] = NULL;
}
}
$adc_preparado -> BindValue(":".$adc_campos[$adc_aux], $adc_dados[$adc_campos[$adc_aux]]);
/*
print_r($adc_dados[$adc_campos[$adc_aux]]);
echo"<br>";
*/
}
return $adc_preparado->execute();
}
The problem itself:
In the JS file it sends it to this PHP page, and returns the data. where it checks whether data.type=="add"
or if it is data.type="edit"
, unfortunately giving a console.log(data.type)
the message is undefined, and a console.log(data)
returns an array that should not be returning, which in this case is:
Array(
[0] => nome
[1] => status
[2] => data_criacao
[3] => data_modificacao
)
What would be the error?