Javascript 获取PHP数组并使用jQuery输出结果的最佳方法?

Javascript 获取PHP数组并使用jQuery输出结果的最佳方法?,javascript,php,jquery,foreach,Javascript,Php,Jquery,Foreach,我试图从MyBB论坛的导出消息中获取一些文本。该文件是一个CSV文件 if (($handle = fopen("test.csv", "r")) === FALSE) { exit("Couldn't load CSV"); } fgetcsv($handle); $messages = array(); $i = 0; while($data = fgetcsv($handle)){ if(count($data) == 7){ $messages[

我试图从MyBB论坛的导出消息中获取一些文本。该文件是一个CSV文件

if (($handle = fopen("test.csv", "r")) === FALSE) { 
    exit("Couldn't load CSV");
}

fgetcsv($handle);

$messages = array(); 
$i = 0;

while($data = fgetcsv($handle)){
    if(count($data) == 7){
        $messages[$i]['date'] = $data[0] + "," + $data[1]; 
        $messages[$i]['folder'] = $data[2];
        $messages[$i]['subject'] = $data[3]; 
        $messages[$i]['receiver'] = $data[4];   
        $messages[$i]['sender'] = $data[5]; 
        $messages[$i]['message'] = str_replace("\'", "'", $data[6]); 
    }else{
        $messages[$i]['date'] = $data[0]; 
        $messages[$i]['folder'] = $data[1];
        $messages[$i]['subject'] = $data[2]; 
        $messages[$i]['receiver'] = $data[3]; 
        $messages[$i]['sender'] = $data[4];     
        $messages[$i]['message'] = str_replace("\'", "'", $data[5]);  
    }
    $i++;
}
我给每个tr和th标记(th包括发送者的名字,tr包括消息)一个带有数字的类。第一条消息是0,第二条消息是1,第三条消息是2,依此类推。我用PHP加载消息,如下所示:

$messages[0]['message'])
其中0是第一条消息。我希望它就像当我点击第一条消息时,它会加载第一条消息。单击第二条消息时,它将加载第二条消息。你明白了

我的jQuery如下所示:

$("td, th").on("click", function() {
    var message = $(this).attr("class");
    $("#message").text("<?= preg_replace("/\r|\n/", "", $messages[0]['message']) ?>");
});
$(“td,th”)。在(“单击”,函数(){
var message=$(this.attr(“类”);
$(“#消息”).text(“”);
});
我使用preg_replace将其全部放在一行中

Foreach循环

<table>
foreach($messages as $i => $message) {
echo <<<EOL
        <tr>
            <th class="$i"> {$message['sender']} </th>
        </tr>
        <tr>
            <td class="$i"> {$message['message']} </td>
        </tr> 
EOL;
}
</table>

foreach($i=>$message形式的消息){
回音
returnedVal是test.php返回的值。
例如,您可以返回您的消息。

然后以$(“#结果”)显示它或者无论您想在哪里:)

您应该使用AJAX加载消息。看看它:我知道如何发出AJAX请求,但正确设置它是我遇到的一个问题。因此,我应该制作一个包含所有PHP内容的额外PHP文件?在本例中称为test.PHP。如果您遵循此示例,是的,您应该创建test.PHP,在其中您可以我通过POST获取messageId。那么要获取$\u get东西,我应该放什么来代替0呢?$messages[0]['message']在你的test.php中,你将返回
$message[$messageId]['message']
。要获取messageId,只需
$messageId=$\u POST['messageId'];
我如何处理$message[$messageId]['message']?我应该把它放在哪里?我把$u POST放在循环之后的PHP文件中,但我不确定第一个东西放在哪里。
$("td, th").on("click", function() {
    var messageId = $(this).attr("class");
    $.ajax({
       url: "test.php",
       type: "post",
       data: messageId,
       success: function(returnedVal){
           $("#result").html(returnedVal);
       },
       error:function(){
           $("#result").html('There is an error');
       }
   });      
});