【问题标题】:Load a second div when a button is clicked单击按钮时加载第二个 div
【发布时间】:2013-11-24 03:51:42
【问题描述】:

此代码的目的是在单击按钮时从 PHP 文件填充 div。 还要在页面加载时预先填充一个 div - 我已经完成了这个任务。

现在我想同时加载第二个 div,但我不确定该怎么做。

function loadpage(clicked_id) {
  if (clicked_id != 0 || clicked_id != null || clicked_id !="") {
    $("#Table").load("marshfight1.php?action=fight&id="+ clicked_id);
    $("#mobs").load("marshtab.php");
  }
}

$(document).ready(function() {
  // initial
  $('#mobs').load('marshtab.php');
});

Echo "<div id=Table></div>";
Echo "<div id=mobs></div>";

$selem = mysql_query("SELECT * FROM senemies WHERE userid='$playerinfo[id]' && arena='10'");
while($enem = mysql_fetch_array($selem)) {
  Echo "<button><type=button id=\"$enem[id]\" onclick=\"loadpage(this.id)\" name=\"$enem[id]\">$enem[name]<br>Level: $enem[level]<br> HP: $enem[hp]</a></button>";
}

除了第二个 .load 来更新 #mobs 之外,一切正常。

【问题讨论】:

  • 你不能只是混合搭配 PHP 和 JavaScript,PHP 是在服务器端执行的,而 JavaScript 是在客户端执行的。
  • 你做错的第一件事是没有正确缩进你的代码。 :P
  • 这成功了,只是没有重新更新第二个 DIV

标签: javascript php jquery


【解决方案1】:

问题似乎是您的 javascript 中包含 PHP。请记住,虽然 PHP 会抛出编译错误,但 IE 会尽力而为,而 FF 会尽力而为,直到出现错误,然后非常安静地退出。因此它看起来可以工作,但实际上你的一半代码永远不会被执行。 FF 中的 ctrl-shift-k 会给你一个错误列表。

你需要的是 ajax。这在 jquery 和“直接”javascript 中都很容易实现。

如果您已经知道这一点,请原谅我,但其他人使用此论坛,因此该过程的简要总结如下:

  1. 按钮被点击触发JS onclick函数。
  2. onclick 函数将适当的数据(例如哪个按钮和/或用户编号等)发送到 php 文件。
  3. onclick 函数根据需要将 php 返回的任何内容放入 div 中。

你需要让你的 js 和 php 组织和分离。

可以在http://www.w3schools.com/ajax/找到一个很好的概述和基本教程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2015-09-30
    • 2011-10-21
    • 2014-02-08
    相关资源
    最近更新 更多