В течение нескольких часов я пытаюсь понять, почему это произошло, я объясняю себе:
Я отправляю запрос ajax на свой api с FormData, все поля на данный момент хороши.
Когда его отправили в мой API, какое-то поле (например, $_POST["Description"]) выглядело иначе ..
Мой JavaScript:
document.getElementById("sendAddQuestion").onclick = function () {
if (document.getElementById("inputIntitule").value! = "" && document.getElementById("inputDescription").value! = "" && $("#tagsInputList").val()! = "") {
var lsttags = "";
var str = $("#tagsInputList").val();
var res = str.split(",");
res.forEach(function(element) {
lsttags= lsttags + "["+element+"]";
});
var form = new FormData();
form.append("intitule", "\"" + document.getElementById("inputIntitule").value + "\"" );
form.append("description", "\"" +document.getElementById("inputDescription").value+ "\"");
form.append("id_utilisateur", "2");
form.append("tags", "\"" +lsttags+ "\"");
var settings = {
"async": true,
"crossDomain": true,
"url": "http://localhost/FAQ/api.php?action=post_question",
"method": "POST",
"headers": {
"cache-control": "no-cache",
"Postman-Token": "093d95af-25f5-4c51-bfcd-9f74577ad200"
},
"processData": false,
"contentType": false,
"mimeType": "multipart/form-data",
"data": form
}
$.ajax(settings).done(function (response) {
document.getElementById("inputIntitule").value = "";
document.getElementById("inputDescription").value = "";
$("#tagsInputList").tagsinput('removeAll');
$("#myModalAddQuestion").modal("hide")
location.reload();
});
} else {
alert("Veuillez remplir tout les champs!");
}
};
Мой php API:
//je passe en paramètre mon objet PDO précédemment créé afin d'exécuter ma requête
function edit_question($pdo) {
$sql = "UPDATE `question` SET `intitule`='".$_POST["intitule"]."',`description`='".$_POST["description"]."' ,`tags`='".$_POST["tags"]."' WHERE `id` = ".$_POST["id"];
//création de la requête Sql pour aller chercher tous les articles
$exe = $pdo->query($sql);
return $_POST["intitule"];
}
В моем document.getElementById("inputIntitule").value стоит Pourquoi votre site indique-t-il plusieurs disponibilités ?
но в $_POST["intitule"] у меня есть Pourquoi votre site indique-t-il plusieurs disponibilit\u00c3\u00a9s ?
ты можешь мне сказать почему?
посмотрите stackoverflow.com/questions/279170/utf-8-all-the-way-through
Я где-то вижу, если я использую FormData, это автоматически в utf8 ..
Я сомневаюсь, что. Это зависит от заголовков html, позже зависит от кодировки php скрипта, кодировки базы данных и таблицы и так далее.
@andreat Будьте внимательнее при редактировании. Ваше редактирование было в лучшем случае сомнительным, а ИМО на самом деле вредным, поскольку он откатил некоторые полезные изменения.
@PatrickQ Извините, но, честно говоря, я не понимаю, в чем я ошибался. Думаю, я тщательно его редактировал. Однако в следующий раз я уделю больше внимания.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


похоже на проблему с кодировкой (utf-8)! É закодирован как
\u00c3\u00a9