2017-07-25 85 views
-1

我是Javascript的新手,从我读过的书中我假设有一种更好的方法来处理我的方法,但是它在这里。onclick变量没有传递到表格

我有一个onclick的表单,当在表格单元格中点击一个清晰的图像时,单元格的背景图片会发生变化(显示它已被选中,或者如果再次单击,则取消选中)。这一切都有效,现在我想定义一些变量,以便当按下表单的Submit按钮时,会传递一个表单变量,显示用户是否选择了该选项。

功能的JavaScript我发现在互联网上:

var curPic1 = 0; 
window.onload=function() { 
    document.getElementById('clear-kayangan').onclick=function() { 
     curPic1 = (curPic1 == 0)? 1 : 0; 
     document.getElementById('td_kayangan').style.backgroundImage = (curPic1 == 1)? 'url("pics/map-kayangan-lake-selected.png")' : 'url("pics/map-kayangan-lake.png")'; 
    } 
} 

我的计划是写一个IF语句,如果curPic1 == 1(背景图像选择显示用户已选择)指出,我想创建一个全局变量我可以再传给形式到PHP:

$spot1 = "<script>document.write(spot1);</script>"; 
if ($spot1 == 1) echo "<input name='spot1' type='hidden' value='1' />"; 

出于测试目的,我想:

$spot1=$_POST['spot1']; 
if ($spot1=="1") echo "<b>This really works</b><br>"; 

和它的作品,如果我使用如果$spot1==0,因此在我的javascript函数的顶部我试过如下:

int spot1; 
spot1=0; 
var spot1=0; 

以及JavaScript函数本身我试过内:

int spot1 = 1; 
spot1 = 1; 
window.spot1 = 1; 

我的天堂还没有尝试过IF语句,因为我只是试图测试它们是否有效。我读到我应该能够从函数内部建立一个全局变量。我一次添加了上面的各种选项。它适用于spot=0,所以我假设问题是它没有被设置为函数内的全局变量?或者也许有更好的方法来解决这一切?

On提交隐藏的表单变量将最终传递到另一个页面,并在那里使用。

+2

JavaScript和'int'? – epascarello

+0

也包含HTML标记 –

+0

在Javascript中,没有“int”类型。你可以使用parseInt()来搜索一个字符串并返回一个整数。 – Alec

回答

0

在窗体中声明隐藏变量,并在图像的onclick函数中将其值设置为0或1。当提交表单时,该值也将被传递到服务器

+0

我是javascript新手,如何设置“onclick函数的图像”值?隐藏的变量已经在表单中。 – karel

+0

请注意,当图像再次点击时,它会再次变为“未选中”。 – karel

0

为@桑托斯,张以芳说,你应该添加一个ID,隐藏的输入和改变同click处理程序,你已经拥有的价值,如:

<?php 
    $spot1 = $_POST['spot1']=='1' ? 1 : 0; 
?> 
<input name="spot1" id="spot1" type="hidden" value="<?=$spot1?>"> 

,然后在你的JS:

var curPic1 = 0; 
window.onload = function() { 
    document.getElementById('clear-kayangan').onclick = function() { 
     curPic1 = (curPic1 == 0) ? 1 : 0; 
     document.getElementById('td_kayangan').style.backgroundImage = curPic1 ? 'url("pics/map-kayangan-lake-selected.png")' : 'url("pics/map-kayangan-lake.png")'; 

     document.getElementById('spot1').value = curPic1; 
    } 
} 
+0

谢谢,解释一下吧!一直在阅读一些教程,并没有相当多的JavaScript我的头,但非常感谢! – karel