【问题标题】:Server Side Event - PHP echo after Event not wanted服务器端事件 - 不需要事件后的 PHP 回显
【发布时间】:2023-03-12 21:59:01
【问题描述】:

在我的项目中,我尝试向客户端发送一条 PHP 脚本消息,这也很有效:

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);

image

如你所见, 但是在 PHP 脚本结束后,回声再次触发(正常情况) 有没有办法防止这种情况发生?

最好的问候

【问题讨论】:

    标签: events echo addeventlistener sendmessage


    【解决方案1】:

    是我的错,

    是 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);
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多