从 PHP 脚本到 jQuery 的多个 echo json_encode

multiple echo json_encode from php script to jquery

提问人:user2807536 提问时间:10/3/2023 更新时间:10/3/2023 访问量:50

问:

我想在 php 和 jquery (ajax) 中创建类似“步骤处理”的东西。到目前为止,我有这样的代码:

var steps = ["step1", "step2", "step3"];

$.ajax({                                             
    method: "POST",                                  
    url: "test_steps.php",       
    data: {steps: steps},                            
    dataType: "json",                                
    success: function(response) {                    
        console.log(response);
    },
});

在 PHP 中,如下所示:

$steps = $_POST['steps'];                   
                                        
if (isset($steps['step1'])) {               
    if ($test->do_some_function1()) {       
        echo json_encode("step1 - success");
    }                                       
    else {                                  
        echo json_encode("step1 - fail");   
    }                                       
}                                           
                                        
if (isset($steps['step2'])) {               
    if ($test->do_some_function2()) {       
        echo json_encode("step2 - success");
    }                                       
    else {                                  
        echo json_encode("step2 - fail");   
    }                                       
}                                           
                                        
if (isset($steps['step3'])) {               
    if ($test->do_some_function3()) {       
        echo json_encode("step3 - success");
    }                                       
    else {                                  
        echo json_encode("step3 - fail");   
    }                                       
}                                           
                                        
exit;                                       

在最终解决方案中,我想将它放在模态的某个孩子中,所有步骤都带有状态。但是一开始我想等待它们,并将它们一个接一个地放在控制台日志中。如何实现这一目标?比方说:

step1 - success
step2 - success
step3 - fail

至于现在,我收到一个错误,并且来自PHP的所有消息都在错误消息中。所以看来我无法等待所有电话。echo json_encode

提前致谢

php jquery json ajax

评论

2赞 ADyson 10/3/2023
如果您希望每个步骤单独执行并逐个获得反馈,那么每个步骤都需要在其自己的单独 ajax 请求中发送。因为要从 php 获得响应,您必须等待整个脚本完成
2赞 Rob Eyre 10/3/2023
而不是你可能想要的isset($steps['step1'])in_array('step1', $steps)
0赞 ADyson 10/3/2023
As for now I get an error...为了将来参考,如果您遇到错误,请务必告诉我们它是什么。显然,这是与您的问题有关的重要细节。罗伯·艾尔可能已经弄清楚了原因,但你不应该假设我们总是可以猜到——无论如何,如果你已经知道错误,我们为什么要花时间再次解决它?另请参阅如何提问

答: 暂无答案