gpt4 book ai didi

php - Javascript/PHP 更新多个项目的 innerHTML

转载 作者:行者123 更新时间:2023-11-30 05:57:17 25 4
gpt4 key购买 nike

我正在尝试使用 Javascript 在 onclick 事件后更新网页的 innerHTML。我的 Javascript (java.js) 使用 this code访问一个 PHP 页面,该页面回显 innerHTML 中的文本。问题是,我想更新两个项目(一个“颜色”表和一个“项目”表)的 innerHTML,这两个项目彼此不相邻并且具有不同的元素 ID。来自 java.js 的每个调用都可以单独正常工作(就像一个被注释掉一样),但是当它们都运行时,第一个调用将卡在“正在加载”消息上,第二个将起作用。在 Web 浏览器中加载“content.php?item='5'&color='5'”会显示两个表。

我怀疑这与 $_GET[] 的机制有关(我并不完全理解;这是我第一次使用 PHP)。但是调用应该按顺序发生并且键('item' 和 'color')不冲突,所以我不知道出了什么问题。

java.js:

function makeActive(active_tab) {
//item table
callAHAH('content.php?item='+active_tab, 'item', 'getting items for tab '+active_tab+'. Wait...', 'Error');

//color table
callAHAH('content.php?color='+active_tab, 'color', 'getting colors for tab '+active_tab+'. Wait...', 'Error');
}

内容.php:

if (isset($_GET['color'])) {
require 'color.php';

$index = 1*$_GET['color'];
$arr = $ITEM_TYPES[$index];
echoColorTable($arr); //makes table in color.php
} else {
echo "color not set "; //debug
}

if (isset($_GET['item'])) {
require 'item.php';

$index = 1*$_GET['item'];
echoItemTable($index); //makes table in item.php
} else {
echo "item not set "; //debug
}

最佳答案

问题出在 callAHAH您链接到的功能。它在声明 req 时没有 var 关键字。所以它是一个全局变量,一次只能有一个请求。它还在 responseAHAH 函数中重用该全局变量。一般来说,出于这样的原因,全局变量不是一个好主意。我建议完全放弃 callAHAH 函数并使用类似这样的东西,它在不使用全局变量的情况下做完全相同的事情:

function loadInto(url, id, loading, error) {
var ajax;
var el = document.getElementById(id);
el.innerHTML = loading;

if (typeof XMLHttpRequest !== 'undefined')
ajax = new XMLHttpRequest();
else // Some people still support IE 6
ajax = new ActiveXObject("Microsoft.XMLHTTP");

ajax.onreadystatechange = function(){
if(ajax.readyState === 4){
if(ajax.status == 200){
el.innerHTML = ajax.responseText;
}else{
el.innerHTML = error;
}
}
};

ajax.open('GET', url);
ajax.send();
}

它也没有命名为 callAHAH,这总是一个加号。

关于php - Javascript/PHP 更新多个项目的 innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11043126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com