This commit is contained in:
2024-02-13 11:37:28 +01:00
parent a09e8acbab
commit 6b6de42362
4 changed files with 48 additions and 25 deletions

View File

@@ -67,7 +67,10 @@ function sendMessage(){
let channelId = channelsList.options[channelsList.selectedIndex].value; let channelId = channelsList.options[channelsList.selectedIndex].value;
const message = document.getElementById("message").value; const message = document.getElementById("message").value;
document.getElementById("message").value = ""; document.getElementById("message").value = "";
ajaxRequest("POST", "http://serveur-ajax-s3.felix/TP3/php/chat.php?request=messages&channel_id=" + channelId + "&userlogin=etudiant0&message=" + message, getMessages, message); if(message === ""){
return;
}
ajaxRequest("POST", "http://serveur-ajax-s3.felix/TP3/php/chat.php?request=messages", getMessages, "&channel_id=" + channelId + "&userlogin=etudiant0&message=" + message);
} }
getChannels(); getChannels();

View File

@@ -1,9 +1,6 @@
console.log("utils.js loaded"); console.log("utils.js loaded");
function ajaxRequest(type, url, callback=null, data=null){ function ajaxRequest(type, url, callback=null, data=null){
console.log("ajaxRequest called");
console.log("type: " + type);
console.log("url: " + url);
let xhr = new XMLHttpRequest(); let xhr = new XMLHttpRequest();
xhr.open(type, url, true); xhr.open(type, url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
@@ -11,9 +8,19 @@ function ajaxRequest(type, url, callback=null, data=null){
switch (xhr.status){ switch (xhr.status){
case 200: case 200:
case 201: case 201:
let parsedResponse = JSON.parse(xhr.responseText); if(xhr.responseText.trim() !== ''){
if (callback){ try {
callback(parsedResponse); let parsedResponse = JSON.parse(xhr.responseText);
if (callback){
callback(parsedResponse);
}
}
catch (e){
errorAlert("Erreur: " + e);
}
}
else{
errorAlert("Erreur: Aucune donnée reçue");
} }
break; break;
default: default:

View File

@@ -22,26 +22,34 @@ if(isset($_GET['request']) && $_GET['request'] == 'channels'){
} }
} }
if(isset($_GET['request']) && $_GET['request'] == 'messages' && $_GET['channel_id']){ if(isset($_GET['request']) && $_GET['request'] == 'messages'){
$channel_id = intval($_GET['channel_id']); if(isset($_GET['channel_id'])){
$messages = dbGetMessages($pdo, $channel_id); header('Content-Type: application/json');
if($messages){ $channel_id = intval($_GET['channel_id']);
echo json_encode($messages); $messages = dbGetMessages($pdo, $channel_id);
if($messages){
echo json_encode($messages);
}
else{
echo json_encode([]);
}
} }
else{ else{
echo json_encode([]); if(isset($_POST['channel_id']) && $_POST['userlogin'] && $_POST['message']){
header('Content-Type: application/json');
$channel_id = intval($_POST['channel_id']);
$userlogin = $_POST['userlogin'];
$message = $_POST['message'];
$result = dbAddMessage($pdo, $userlogin, $channel_id, $message);
if($result){
echo json_encode(array("status" => "success", "message" => "Message added"));
} else {
echo json_encode(array("status" => "error", "message" => "Message not added"));
}
}
else{
echo json_encode(array("status" => "error", "message" => "Invalid request"));
}
} }
}
if(isset($_POST['request']) && $_POST['request'] == 'messages' && $_POST['channel_id'] && $_POST['userlogin'] && $_POST['message']){
$channel_id = intval($_POST['channel_id']);
$userlogin = $_POST['userlogin'];
$message = $_POST['message'];
$result = dbAddMessage($pdo, $userlogin, $channel_id, $message);
if($result){
echo json_encode('Message added');
}
else{
echo json_encode('Message not added');
}
} }

5
TP3/test.http Normal file
View File

@@ -0,0 +1,5 @@
POST http://serveur-ajax-s3.felix/TP3/php/chat.php
Content-Type: application/x-www-form-urlencoded
request=messages&channel_id=1&userlogin=etudient0&message=Test%20Post