1
I have a problem that has left me quite confused. I have a page in php that registers ministries. In it I send the data via ajax to another php page to do the insertion, and the insertion always occurs in the normal way. Follow the codes:
Ajax that sends the data
  $.ajax({
    method: "POST",
    url: "ajax/insertMinisterio.php",
    data: {
      name: name,
      alternativename: alternativename,
      description: description
    },
    success: function (result){
      var returnjson = JSON.parse(result);
      var type = returnjson['type'];
      var msg = returnjson['message'];
      alert(msg);
      //reloadMinisteriosTable();
    } // Fim success
  }) // Fim ajax
});
Page that receives data from ajax
<?php   
    include '../../class/autoload.php';
    $database = new Database();
    $ministerio = new Ministerio();
    $name = utf8_decode($_POST['name']);
    $alternativename = utf8_decode($_POST['alternativename']);
    $description = utf8_decode($_POST['description']);
    $ministerio->setNome($name);
    $ministerio->setNomeAlternativo($alternativename);
    $ministerio->setDescricao($description);
    $ministerio->setStatus(1);
    try{        
        $database->database_connect();
        $query = "INSERT INTO pibjm_ministerio (nome, nome_alternativo, descricao, status) VALUES ('{$ministerio->getNome()}', '{$ministerio->getNomeAlternativo()}', '{$ministerio->getDescricao()}', {$ministerio->getStatus()})";
        $result = mysqli_query($database->database_connect(), $query);
        if($result){
            $finalresult = array("query"=>$query, "type"=>"success", "message"=>"Ministério cadastrado com sucesso!");
        } else {
            $finalresult = array("query"=>$query, "type"=>"error", "message"=>"Não foi possível cadastrar o ministério! Tente novamente!");
        }
        echo json_encode($finalresult);
    }
    finally{
        $database->database_close_connection();
    }
?>
The big problem I’m having in using the utf8_decode. When I use it in any of the variables, it even does the normal insertion in the database, but always returns in ajax with the empty result. And I need the utf8_decode because it leaves the accent right. If I use htmlentities, utf8_encode, or any other php function in the variables, everything also works, however in ajax return back the data that I desire, But in the bank register the accentuation is wrong. I tested several solutions and I can not result. What problem utf8_decode may be giving there in php?
hum beauty Jader, then I’ll test here and I’ll tell you
– DiChrist
While further analyzing your report, I realized that in fact you are having trouble recovering the data from the bd and are probably trying to get it by ajax/json, so I edited the answer.
– Jader A. Wagner
So Jader, solved my problem, but I did not apply utf8_encode on all elements of the array, I only passed the query and solved!
– DiChrist