我使用PHP在页面加载时使用随机数填充HTML table
。当单击button
时,我想通过ajax请求调用PHP以重新填充新编号的table
。问题是我无法使用(或者至少真的想避免使用)外部文件:必须通过同一个文件中的ajax请求调用PHP。通过ajax在同一个文件中使用PHP填充html表格
文件是index.php
并包含以下简化PHP代码:
<?php
//code to be executed via ajax call should be placed here ?
?>
<!DOCTYPE html>
<HTML>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width">
<HEAD>
<title>PHP test</title>
</HEAD>
<BODY>
<table id="table">
<?php //problem : only works once in page load
$howMany = 10;
$values = array();
echo '<tr>';
for ($v = 0; $v < $howMany; $v++) {
$values[$v] = mt_rand(-10, 10);
echo '<td>'. $values[$v] .'</td>';
}
echo '</tr>';
?>
</table>
<button id="btn">Generate new numbers</button>
<BODY>
这是我目前的Ajax请求:
<script type="text/javascript">
function send_ajax() {
console.log('btn clicked');
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest(); //code for IE7+, Firefox, Chrome, Opera, Safari
}
else {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); //code for IE6, IE5
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log('data sent');
}
}
xmlhttp.open('POST', 'index.php', true);
//xmlhttp.send(document.getElementById('input').value);
}
document.getElementById('btn').addEventListener('click', send_ajax, false);
</script>
我敢肯定,我失去了一些东西很明显,但我没有想法如何我应该适应我的php代码和ajax请求重新填充table
当在同一个文件中接收ajax调用。 (注意:我知道使用外部文件会很容易,但这种情况是我需要用ajax和PHP处理数十个不同文件中更复杂任务的典型例子)。
为什么你不使页面加载空表,然后初始化填充此表的ajax请求? – Hossam