0
I have a script as 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 to this PHP page, and returns the data. where it checks if data.type=="add"
or if it is data.type="edit"
, unfortunately while 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 mistake?
@13dev where did this method you added to the question come from? This type of editing should be avoided, especially since the author does not mention any of this excerpt or in deleted posts. Always choose to direct the author himself to edit the question.
– user28595
@Cuncuno understood, my mistake, this method is the author’s own, where in the answer I asked this same method, but when asking the author to edit the answer ( I was wrong to ask, I meant question ).
– 13dev