Php 为什么一次只能使用其中一个功能?
即使我删除了if语句,一次也只能使用以下语句中的一个。为了让前者发挥作用,我必须对后者进行评论Php 为什么一次只能使用其中一个功能?,php,javascript,ajax,Php,Javascript,Ajax,即使我删除了if语句,一次也只能使用以下语句中的一个。为了让前者发挥作用,我必须对后者进行评论 <? if(isset($_POST['region'])){ echo "<script> showRecords('".$_POST['region']."','region','country') </script>";} if(isset($_POST['country'])){ echo "<script> showRecords('".$_POST
<?
if(isset($_POST['region'])){
echo "<script> showRecords('".$_POST['region']."','region','country') </script>";}
if(isset($_POST['country'])){
echo "<script> showRecords('".$_POST['country']."','country','provice') </script>";}
?>
该脚本将生成一组非常简单的页面,其中列出了基于某些$\u GET信息的一些值
我就是不明白为什么每次只允许我做一个脚本。我甚至尝试将函数克隆到showRecords2,但它仍然只执行showRecords或showRecords2。将
xmlhttp=new-XMLHttpRequest()
替换为var-xmlhttp=new-XMLHttpRequest()
。请注意添加的var关键字。发生的情况是,xmlhttp
正在成为一个全局范围变量,每次您发出请求时,它都会被新的值/参数/参数覆盖,例如,当第一个调用仍在执行时,调用两次showRecords
,第二个调用会覆盖它
记住在函数级别创建所有变量以避免覆盖,除非它们实际上要在全局范围内使用。调试此类问题非常耗时,尤其是当您不知道在哪里可以找到资料时。希望有帮助 将
xmlhttp=new-XMLHttpRequest()
替换为var-xmlhttp=new-XMLHttpRequest()
。请注意添加的var关键字。发生的情况是,xmlhttp
正在成为一个全局范围变量,每次您发出请求时,它都会被新的值/参数/参数覆盖,例如,当第一个调用仍在执行时,调用两次showRecords
,第二个调用会覆盖它
记住在函数级别创建所有变量以避免覆盖,除非它们实际上要在全局范围内使用。调试此类问题非常耗时,尤其是当您不知道在哪里可以找到资料时。希望有帮助 您的XmlHttp请求对象正在发送GET请求,而不是POST对不起,$\u POST引用的是特定于页面的值。我想做的是在用户提交时加载适当的列表,如果他想提交一些稍有不同的信息,他必须尽可能少地进行更改。这很酷,还有其他想法吗?我现在正把头撞在键盘上Hahay你的XmlHttp请求对象正在发送GET请求,而不是POST对不起,$\u POST是指特定于页面的值。我想做的是在用户提交时加载适当的列表,如果他想提交一些稍有不同的信息,他必须尽可能少地进行更改。这很酷,还有其他想法吗?我现在正把头撞在键盘上哈哈,哎呀,我把“省”打错了。这是一个很好的建议,相信我,从现在起我会这么做的。哎呀,我把“省”错写成了“省”。这是一个很好的建议,相信我,从现在起我会这么做的。
function showRecords(str,column,nextDiv)
{
if (str=="")
{
document.getElementById(nextDiv).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(nextDiv).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","get"+column+".php?"+column+"="+str,true);
xmlhttp.send();
}