Php 重复的javascript代码-
我有一个从网上下载的javascript。这很有效。我的问题是我现在需要在页面上的三个实例上使用相同的脚本?如何复制或编辑此javascript代码以实现此目的 给你一个背景,我有一个下拉列表,onchange调用下面的函数,在不刷新页面的情况下用mysql数据填充一个表。该脚本显示另一个页面getPersonFormMedical.php中的信息 我现在有另外两个页面,我想用相同的javascript在同一个页面上显示。即 getjobsformedical.php和getrisksformedical.php 任何帮助都将不胜感激。(抱歉,我的javascript没有那么好) 我可以在另一个脚本标记中复制代码吗?但是如何为一个标记onclick调用多个onchange事件呢。所有这三个页面都必须从单个onclick调用 我知道还有其他的方法可以做到这一点,但如果我们能够研究这种方法,我们将不胜感激 为了澄清这一点,我需要一个onchage事件以三种不同的格式显示三个不同的php页面(带有mysql数据) 用答案更新 多亏了dystroy,完整的工作脚本是:Php 重复的javascript代码-,php,javascript,mysql,Php,Javascript,Mysql,我有一个从网上下载的javascript。这很有效。我的问题是我现在需要在页面上的三个实例上使用相同的脚本?如何复制或编辑此javascript代码以实现此目的 给你一个背景,我有一个下拉列表,onchange调用下面的函数,在不刷新页面的情况下用mysql数据填充一个表。该脚本显示另一个页面getPersonFormMedical.php中的信息 我现在有另外两个页面,我想用相同的javascript在同一个页面上显示。即 getjobsformedical.php和getrisksforme
<script>
function showUser(userNumber, str, target, page) {
if (str=="") {
document.getElementById(target + userNumber).innerHTML='';
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById(target).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET",page+"?q="+str,true);
xmlhttp.send();
}
function showThreeSections(userNumber, str) {
showUser(userNumber, str, 'a', 'getpersonsformedical.php');
showUser(userNumber, str, 'b', 'getjobsformedical.php');
showUser(userNumber, str, 'c', 'getrisksformedical.php');
}
</script>
函数showUser(userNumber、str、target、page){
如果(str==“”){
getElementById(目标+用户号).innerHTML='';
返回;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
如果(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(target.innerHTML=xmlhttp.responseText;
}
}
open(“GET”,page+”?q=“+str,true);
xmlhttp.send();
}
函数showthereesections(userNumber,str){
showUser(userNumber,str,'a','getPersonFormedical.php');
showUser(userNumber,str,'b','getjobsformedical.php');
showUser(userNumber,str,'c','getrisksformedical.php');
}
输出到divs:
<div align="left" id="a"><font color=gray>Person Assignment will be shown here</font></div>
<div align="left" id="b"><font color=gray>Person Jobs will be shown here</font></div>
<div align="left" id="c"><font color=gray>Person Risks will be shown here</font></div>
此处将显示人员分配
此处将显示个人工作
此处将显示人员风险
感谢和问候,
Ryan在
xmlhttp.open之前
创建这样的if函数
if(str == str){
var page = "getjobsformedical.php?q="+str;
}
else{
var page = "getrisksformedical.php?q="+str;
}
然后呢,
xmlhttp.open("GET",page,true);
更新:
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if(str == 'getjobsformedical.php'){
document.getElementById("txtHint1").innerHTML += xmlhttp.responseText;
}
elseif(str == 'getrisksformedical.php'){
document.getElementById("txtHint2").innerHTML += xmlhttp.responseText;
}
elseif(str == 'page3.php'){
document.getElementById("txtHint3").innerHTML += xmlhttp.responseText;
}
}
在
xmlhttp.open
之前,创建这样的if函数
if(str == str){
var page = "getjobsformedical.php?q="+str;
}
else{
var page = "getrisksformedical.php?q="+str;
}
然后呢,
xmlhttp.open("GET",page,true);
更新:
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if(str == 'getjobsformedical.php'){
document.getElementById("txtHint1").innerHTML += xmlhttp.responseText;
}
elseif(str == 'getrisksformedical.php'){
document.getElementById("txtHint2").innerHTML += xmlhttp.responseText;
}
elseif(str == 'page3.php'){
document.getElementById("txtHint3").innerHTML += xmlhttp.responseText;
}
}
您应该在HTML页面的HEAD元素中只包含一次脚本,但使用另一个参数:页面名称 第二个函数可以使用不同的参数调用第一个函数三次 大概是这样的:
<HEAD>
... other things
<script>
function showUser(userNumber, str, page) {
if (str=="") {
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint" + userNumber).innerHTML += xmlhttp.responseText;
}
}
xmlhttp.open("GET",page+"?q="+str,true);
xmlhttp.send();
}
function showThreeSections(userNumber, str) {
document.getElementById("txtHint" + userNumber).innerHTML='';
showUser(userNumber, str, 'getpersonsformedical.php');
showUser(userNumber, str, 'page2.php');
showUser(userNumber, str, 'page3.php');
}
</script>
<script>
function showUser(userNumber, str, target, page) {
if (str=="") {
document.getElementById(target + userNumber).innerHTML='';
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById(target + userNumber).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET",page+"?q="+str,true);
xmlhttp.send();
}
function showThreeSections(userNumber, str) {
showUser(userNumber, str, 'a', 'getpersonsformedical.php');
showUser(userNumber, str, 'b', 'page2.php');
showUser(userNumber, str, 'c', 'page3.php');
}
</script>
... 其他事情
函数showUser(userNumber,str,page){
如果(str==“”){
返回;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
如果(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”+userNumber).innerHTML+=xmlhttp.responseText;
}
}
open(“GET”,page+”?q=“+str,true);
xmlhttp.send();
}
函数showthereesections(userNumber,str){
document.getElementById(“txtHint”+userNumber).innerHTML='';
showUser(userNumber,str,'getPersonFormedical.php');
showUser(userNumber,str,'page2.php');
showUser(userNumber,str,'page3.php');
}
请注意,大函数将添加到innerHTML,而不是清理它
然后您可以选择以下选项:
<SELECT NAME=medcondition3 id=medcondition3 onchange="showThreeSections(1, this.value)">
但是这个解决方案可能不好:您可能需要填充不同的目标div,而不是一个。如果不重新设计(或至少研究)整个页面,很难说
编辑: 如果您想针对不同的div,您应该: 1) 我有三个div。比如说
<div id=a1></div>
<div id=b1></div>
<div id=c1></div>
2) 例如,修改代码如下:
<HEAD>
... other things
<script>
function showUser(userNumber, str, page) {
if (str=="") {
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint" + userNumber).innerHTML += xmlhttp.responseText;
}
}
xmlhttp.open("GET",page+"?q="+str,true);
xmlhttp.send();
}
function showThreeSections(userNumber, str) {
document.getElementById("txtHint" + userNumber).innerHTML='';
showUser(userNumber, str, 'getpersonsformedical.php');
showUser(userNumber, str, 'page2.php');
showUser(userNumber, str, 'page3.php');
}
</script>
<script>
function showUser(userNumber, str, target, page) {
if (str=="") {
document.getElementById(target + userNumber).innerHTML='';
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById(target + userNumber).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET",page+"?q="+str,true);
xmlhttp.send();
}
function showThreeSections(userNumber, str) {
showUser(userNumber, str, 'a', 'getpersonsformedical.php');
showUser(userNumber, str, 'b', 'page2.php');
showUser(userNumber, str, 'c', 'page3.php');
}
</script>
函数showUser(userNumber、str、target、page){
如果(str==“”){
getElementById(目标+用户号).innerHTML='';
返回;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
如果(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(target+userNumber).innerHTML=xmlhttp.responseText;
}
}
open(“GET”,page+”?q=“+str,true);
xmlhttp.send();
}
函数showthereesections(userNumber,str){
showUser(userNumber,str,'a','getPersonFormedical.php');
showUser(userNumber,str,'b','page2.php');
showUser(userNumber,str,'c','page3.php');
}
您应该在HTML页面的HEAD元素中只包含一次脚本,但使用另一个参数:页面名称
第二个函数可以使用不同的参数调用第一个函数三次
大概是这样的:
<HEAD>
... other things
<script>
function showUser(userNumber, str, page) {
if (str=="") {
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint" + userNumber).innerHTML += xmlhttp.responseText;
}
}
xmlhttp.open("GET",page+"?q="+str,true);
xmlhttp.send();
}
function showThreeSections(userNumber, str) {
document.getElementById("txtHint" + userNumber).innerHTML='';
showUser(userNumber, str, 'getpersonsformedical.php');
showUser(userNumber, str, 'page2.php');
showUser(userNumber, str, 'page3.php');
}
</script>
<script>
function showUser(userNumber, str, target, page) {
if (str=="") {
document.getElementById(target + userNumber).innerHTML='';
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById(target + userNumber).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET",page+"?q="+str,true);
xmlhttp.send();
}
function showThreeSections(userNumber, str) {
showUser(userNumber, str, 'a', 'getpersonsformedical.php');
showUser(userNumber, str, 'b', 'page2.php');
showUser(userNumber, str, 'c', 'page3.php');
}
</script>
... 其他事情
函数showUser(userNumber,str,page){
如果(str==“”){
返回;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
如果(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”+userNumber).innerHTML+=xmlhttp.responseText;
}
}
open(“GET”,page+”?q=“+str,true);
xmlhttp.send();
}
函数showthereesections(userNumber,str){
document.getElementById(“txtHint”+userNumber).innerHTML='';
showUser(userNumber,str,'getPersonFormedical.php');
showUser(userNumber,str,'page2.php');
showUser(userNumber,str,'page3.php');
}
请注意,大函数将添加到innerHTML,而不是清理它
然后您可以选择以下选项:
<SELECT NAME=medcondition3 id=medcondition3 onchange="showThreeSections(1, this.value)">
但是这个解决方案可能不好:您可能需要填充不同的目标div,而不是一个。如果不重新设计(或至少研究)整个页面,很难说
编辑: