Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于不在PHP中工作的Javascript页面包括_Javascript_Php_Include - Fatal编程技术网

关于不在PHP中工作的Javascript页面包括

关于不在PHP中工作的Javascript页面包括,javascript,php,include,Javascript,Php,Include,我正在使用php在我的网站上生成页面。很好。我试图通过使用include函数来包含一个站点范围的通用搜索框,这样当我添加或修改这个搜索框时,我只需要在一个页面上工作,而不是在我的站点上的每个页面上工作。那里也很好 当我现在试图修改搜索框页面,以便在基本搜索表单上选择“其他”选项时,出现另一个选择字段(使用javascript)时,问题就出现了。我已经设置了编码,当我直接访问搜索页面时,它可以正常工作,但是当我使用include函数将搜索页面嵌入到另一个页面时,javascript函数就不起作用了

我正在使用php在我的网站上生成页面。很好。我试图通过使用include函数来包含一个站点范围的通用搜索框,这样当我添加或修改这个搜索框时,我只需要在一个页面上工作,而不是在我的站点上的每个页面上工作。那里也很好

当我现在试图修改搜索框页面,以便在基本搜索表单上选择“其他”选项时,出现另一个选择字段(使用javascript)时,问题就出现了。我已经设置了编码,当我直接访问搜索页面时,它可以正常工作,但是当我使用include函数将搜索页面嵌入到另一个页面时,javascript函数就不起作用了。如果我使用iframe嵌入搜索页面,它也会工作得很好,但是我不想使用iframe,并且已经尽可能地切换到php include函数

我正在使用的示例来自

这是另一个stackexchange问题中使用的代码,因此您不必来回跳转

<script type="text/javascript">

function test() {
if (document.getElementById("state").value == "notinoz") {
    document.getElementById("extra").style.display = "block";
} else {
    document.getElementById("extra").style.display = "none";
}
}

</script>

<P>
<select id="state" name="state" style="width: 212px;" onclick="test()">
<option value="nsw">New South Wales</option>
<option value="qld">Queensland</option>
<option value="vic">Victoria</option>
<option value="nt">Northern Territory</option>
<option value="tas">Tasmania</option>
<option value="sa">South Australia</option>
<option value="wa">Western Australia</option>
<option value="act">Australian Capital Territory</option>
<option value="notinoz">Not in Australia</option>    
 </select>

<select id="extra" name="extra" style="display: none">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

功能测试(){
if(document.getElementById(“state”).value==“notinoz”){
document.getElementById(“额外”).style.display=“块”;
}否则{
document.getElementById(“额外”).style.display=“无”;
}
}

新南威尔士州 昆士兰 维多利亚 北领地 塔斯马尼亚 南澳大利亚 西澳大利亚州 澳大利亚首都地区 不在澳大利亚 1. 2. 3.

包括站点上任何页面的编码:

HTML;
include("/home/seocom5/public_html/postcard/iframe_pc_eph_mob.php");
echo <<<HTML
HTML;
包括(“/home/seocom5/public_html/postcard/iframe_pc_eph_mob.php”);

echo我刚刚意识到,当您需要它的
时,您正试图获取
.value
。selectedIndex
只给出了
中所选
的索引


从那里你可以使用索引作为document.getElementById(“state”)[document.getElementById(“state”).selectedIndex]
或一些变体。

嗨,qumonio,非常感谢您的及时回复。在过去的几天里,我一直在忙着让它发挥作用,我发现了一些东西。第一,我很笨。我在做实验的时候,在同一页上有两份这个表单的副本,它们都有相同的ID。这就是它不起作用的原因,更正后,它可以使用.value或selectedIndex。但仍然存在一个问题,我将在下一篇评论中详细介绍。再次感谢Stan…另一个问题是:当选择触发附加选择字段(notinoz)外观的项目时,然后单击搜索(php搜索过程在新页面上给出结果),当返回原始页面时,“notinoz”仍在搜索字段中,但是额外的下拉框不见了。当此搜索页面是php包含的一部分时,会发生这种情况。作为独立页面访问它,它将保持不变。在组合的“包含页面”上,它是隐藏的,但值仍然存在。有什么想法吗?再次感谢你,斯坦……你试过了,你说得对。我一直在做这件事:D
。value
工作得很好;写第二篇文章或重写这篇文章可能更合适。至于解决方案:我认为使用
onload
事件侦听器来处理显示添加下拉列表会有所帮助。再次感谢您的想法,希望您度过了一个愉快的假期。我已经在研究某种带有“onload”的事件监听器,但最终决定在调用perl搜索过程时使用target=“\u blank”。这将根据浏览器的不同,在另一个选项卡或页面中显示搜索结果,并保持原始搜索表单不变。这避免了第二个字段在返回页面时意外消失,因为当另一个选项卡/页面打开时,原始页面保持原样。可能不是在所有情况下都很理想,但对我来说很好…再次谢谢你,斯坦。。。