我是Javascript的新手,从我读过的内容来看,我认为我的方法有一个更好的方法,但就在这里。
我有一个onclick表单,当在表格单元格中单击清晰图像时,单元格的背景图片会更改(显示已选中,或者如果再次单击则未选中)。一切正常,现在我想定义一些变量,以便在按下表单的“提交”按钮时,传递一个表单变量,显示用户是否选择了该选项。
我在互联网上找到的功能性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: / p>
$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>";
如果我使用If $spot1==0
,它会起作用,我在javascript函数的顶部尝试了以下内容:
int spot1;
spot1=0;
var spot1=0;
在javascript函数本身中我尝试过:
int spot1 = 1;
spot1 = 1;
window.spot1 = 1;
我还没有尝试过IF语句,因为我只是试着测试它们是否正常工作。我读到我应该能够在函数内建立一个全局变量。我一次添加了一个以上的各种选项。它适用于spot=0
,所以我假设问题是它没有被设置为函数中的全局变量?或许对这一切有更好的方法?
On提交隐藏的表单变量最终会传递到另一个页面并在那里使用。
答案 0 :(得分:0)
在表单中声明隐藏变量,并在图像的onclick功能中将其值设置为0或1。提交表单时,此值也将传递给服务器
答案 1 :(得分:0)
正如@ santosh-sawant所说,你应该为隐藏的输入添加一个id,并在你已经拥有的同一个点击处理程序中更改值,例如:
<?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;
}
}