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;
const message = 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();

View File

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

View File

@@ -22,26 +22,34 @@ if(isset($_GET['request']) && $_GET['request'] == 'channels'){
}
}
if(isset($_GET['request']) && $_GET['request'] == 'messages' && $_GET['channel_id']){
$channel_id = intval($_GET['channel_id']);
$messages = dbGetMessages($pdo, $channel_id);
if($messages){
echo json_encode($messages);
if(isset($_GET['request']) && $_GET['request'] == 'messages'){
if(isset($_GET['channel_id'])){
header('Content-Type: application/json');
$channel_id = intval($_GET['channel_id']);
$messages = dbGetMessages($pdo, $channel_id);
if($messages){
echo json_encode($messages);
}
else{
echo json_encode([]);
}
}
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