Событие на стороне сервера - PHP эхо после нежелательного события - PullRequest
0 голосов
/ 27 мая 2020

В моем проекте я пытаюсь отправить клиенту сообщение PHP Script, это также отлично работает:

JS

    //EVENTLISTENER - MESSAGES
let event_messages = new EventSource('overlays/artikel_einstellen/php/artikel_einstellen.php');
event_messages.addEventListener("messages", function(message) {
    $("#modal_message").append(message.data);
    if (message.data == ''){event_messages.close();}
    console.log(message.data);
}, false);

PHP (данные: написано с помощью div - по дисплею: ​​нет) Думаю, это ужасный способ сделать это.

 echo "<div class='notvisible'>\n\n"; `<-- div container to display:none echos from PHP`
    echo "event: messages\n";
    echo "data: - Daten Komplimentierung abgeschlossen &#10004;<br/>" . "\n\n";
    echo "event: progress_bar\n";
    echo "data: 20" . "\n\n";
    echo "</div>\n\n";
    echo str_pad('', 60 * 1024);
    flush();sleep (1);

изображение

Как видите, но после окончания PHP Сценарий, эхо срабатывает снова (что обычно происходит) Есть ли способ предотвратить это?

С уважением

1 Ответ

0 голосов
/ 01 июня 2020

Это была моя ошибка,

был ответ Fetch

//FETCH
const MyForm = document.getElementById('form_artikel_einstellen');
const formData = new FormData(MyForm);

fetch('overlays/artikel_einstellen/funktion/comp_doctrine_tmp_insert.php',{

    method: 'post',
    body: formData,

}).then(function(response){
    return response.text();

    //return response.json();
}).then(function (text){

    $(".modal_small div.modal-close").show();
    //**$(".modal_small div.modal div.modal_content").append(text);** //<<-- 
    return console.log(text);

}).catch(function(error){
    console.error(error);
})
...