Javascript 获取PHP数组并使用jQuery输出结果的最佳方法?
我试图从MyBB论坛的导出消息中获取一些文本。该文件是一个CSV文件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[
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');
}
});
});