主要问题:如何从Ajax正确地回显PHP中的HTML?我当前的网页在页面底部加载php echo,而不是在<tbody>
标记之间。
基本上,Ajax调用PHP文件,该文件会与HTML相呼应。我的脚本在一个表体内。然后,我的Php继续使用表格格式添加行。我想要的是显示一个每周时间表,显示的一周可以通过按钮进行操作。我的时间表可以动态更改而不会破坏格式吗?
以下代码在我正在加载的网页中。
<tbody>
<script>
function loadWeek(x) {
$.ajax({
url:"weekly.php",
type: "post",
data: {x},
success: function(response) {
$(document.body).append(response); }
});
}
window.onload=loadWeek(1); //loads the first week of the schedule
</script>
</tbody>
此外,调用Ajax函数的周递增器/递减器会破坏格式化吗?我必须重新加载特定星期的页面吗?
编辑:文字
好的,让我解释一下。我想在html页面最初加载时加载第一周的时间表。然后在每周时间表下有按钮,更改周,从而更改我们要查看的周。
这个脚本在代码的底部。
<script>
var count = 1;
function increment() {
++count;
if(count > 4)
count = 1;
document.getElementById("week").innerHTML = count;
loadWeek(count);
}
function decrement() {
--count;
if(count < 1)
count = 4;
document.getElementById("week").innerHTML = count;
loadWeek(count);
}
</script>
php代码只回显,不返回。。。
<?php
if (isset($_POST['p'])) {
$week = $_POST['p'];
week($week);
}
function week($week) {
//connects to Database
//PDO statements
//php double array
for ($i = 0; $i < 7; $i++) {
echo "<tr><td>$weekDays[$i]</td>";
for ($j = 0; $j < 5; $j++) {
echo "<td><p>".$usersNames[$i][$j]."</p></td>";
}
echo"</tr>";
}
?>
上面的php代码使用了
function loadWeek (x) {
$.post("weekly.php", {p: x}, function (res) {
$("body").append(res);
});
}
$(function () {
loadWeek (1);
});
php代码可以从数据库中抓取。正如我所说的PHP是有效的,它在没有javascript操作的情况下成功地加载了第一周。我觉得发布其余的php代码不舒服,尤其是代码中有sqli。然而,我需要JS来改变我需要看的一周。格式化以及Ajax完成后Ajax如何处理它是我的问题。
您混淆了一切。让我清除你的脚本。。。
function loadWeek (x) {
$.post("weekly.php", {p: x}, function (res) {
$("tbody").append(res);
});
}
$(function () {
loadWeek (1);
});
PHP代码现在得到:
$_POST["p"] => x
在你的第一个代码中,你只是发送:
weekly.php?1 // This is not the valid request I believe.
现在我的代码将其更改为:
weekly.php?p=1 // You need to change the `param_name` to whatever here.