Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 使用映射图像填充表单中的文本框_Php_Javascript_Html - Fatal编程技术网

Php 使用映射图像填充表单中的文本框

Php 使用映射图像填充表单中的文本框,php,javascript,html,Php,Javascript,Html,我不熟悉php和javascript。我正在制作一个有3组复选框和一个文本框的表单。当用户单击复选框时,将弹出一个映射图像的弹出窗口。图像是一张地图。当用户单击某个城市时,文本框将填充用户单击的任何城市,然后关闭。到目前为止,这是我被绊倒的部分。当地图和表单位于同一页面时,我可以使用我在网上找到的以下代码使其工作: <AREA SHAPE='POLY' COORDS="340, 675, 340, 676, 335, 694, 339, 698, 348, 709, 332, 737,

我不熟悉php和javascript。我正在制作一个有3组复选框和一个文本框的表单。当用户单击复选框时,将弹出一个映射图像的弹出窗口。图像是一张地图。当用户单击某个城市时,文本框将填充用户单击的任何城市,然后关闭。到目前为止,这是我被绊倒的部分。当地图和表单位于同一页面时,我可以使用我在网上找到的以下代码使其工作:

<AREA SHAPE='POLY' 
COORDS="340, 675, 340, 676, 335, 694, 339, 698, 348, 709, 332, 737, 334, 737, 336, 749," 
HREF="javascript:void(0);" onClick="document.forms['Form1'].Field1.value ='Honolulu'; return false;">
……但当这两个人在不同的页面上时,我遇到了问题。我可以想到的解决方案是使用javascript变量,并将其从图像映射发送到表单。听起来可能,但无法理解如何将同一变量传递到不同的页面

还有别的办法吗


提前谢谢

要将变量从一个页面传递到另一个页面,因为您已经在使用表单,所以可以使用GET form方法在页面之间传递变量。使用隐藏的输入元素可能:

HTML:

Javascript:

这段代码将使用area元素的id来填充隐藏的输入元素,同时将其大写,因为HTML不区分大小写。查看此问题的答案,了解如何在下一页获取信息:


否则,您可以随时使用

谢谢你的回复。这是可行的,但会打开一个新窗口。为了清楚起见,我需要将变量发送到上一个窗口,而不是下一个窗口。而且,我应该能够做多次。我尝试做的是类似于弹出式日历,但不是一个日历,而是出现一个映射图像,用于填充表单中的字段。事实上,我开始意识到,这要么是不可能的,要么是我有点不知所措。哈哈。谢谢。@eggman你可以,可以想象,在页面中使用ajax将信息传递给服务器,然后再传递回另一个页面,但这确实是一个很大的麻烦。也许你可能会考虑重新构建这个表单的架构来不必这么做?是的,我觉得对于像我这样的新手来说太多了。我会尽力解决这个问题……无论如何,谢谢你的帮助。我很感激。。。
<form method="get" action="nextpage.htm">
    <map name="country">
    <area shape='poly' coords="340, 675, 340, 676, 
        335, 694, 339, 698, 348, 709, 332, 737, 334, 
        737, 336, 749," href="#" id="Honolulu" />
    </map>
    <input type="hidden" value="" name="selected" id="selected" />
</form>
var hidden = document.getElementById('selected');
var area = document.getElementsByTagName('area');

for (var i = 0; i < area.length; i++) {
    area[i].onclick = function() {
        hidden.value = this.id.charAt(0).toUpperCase() + this.id.slice(1);
        return false;
    }
}