Php 重复的javascript代码-

Php 重复的javascript代码-,php,javascript,mysql,Php,Javascript,Mysql,我有一个从网上下载的javascript。这很有效。我的问题是我现在需要在页面上的三个实例上使用相同的脚本?如何复制或编辑此javascript代码以实现此目的 给你一个背景,我有一个下拉列表,onchange调用下面的函数,在不刷新页面的情况下用mysql数据填充一个表。该脚本显示另一个页面getPersonFormMedical.php中的信息 我现在有另外两个页面,我想用相同的javascript在同一个页面上显示。即 getjobsformedical.php和getrisksforme

我有一个从网上下载的javascript。这很有效。我的问题是我现在需要在页面上的三个实例上使用相同的脚本?如何复制或编辑此javascript代码以实现此目的

给你一个背景,我有一个下拉列表,onchange调用下面的函数,在不刷新页面的情况下用mysql数据填充一个表。该脚本显示另一个页面getPersonFormMedical.php中的信息

我现在有另外两个页面,我想用相同的javascript在同一个页面上显示。即 getjobsformedical.php和getrisksformedical.php

任何帮助都将不胜感激。(抱歉,我的javascript没有那么好)

我可以在另一个脚本标记中复制代码吗?但是如何为一个标记onclick调用多个onchange事件呢。所有这三个页面都必须从单个onclick调用

我知道还有其他的方法可以做到这一点,但如果我们能够研究这种方法,我们将不胜感激

为了澄清这一点,我需要一个onchage事件以三种不同的格式显示三个不同的php页面(带有mysql数据)

用答案更新

多亏了dystroy,完整的工作脚本是:

<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,而不是一个。如果不重新设计(或至少研究)整个页面,很难说


编辑: