无法从[object HTMLInputElement]传递值

时间:2010-06-04 06:25:46

标签: php javascript

我正在传递隐藏的值,并将其转换为javascript函数。我想将此值传递给另一个页面。在我打印它之前,它给了我[object HTMLInputElement]

$ var4 = 1;

echo "<input type='hidden' id='var4' value='$var4'>";

并在javascript中访问它

var y = document.getElementById('var4');
   document.write(y);    //[object HTMLInputElement]

它输出为[object HTMLInputElement]而不是1

另一件事是我想将此值传递给data.php

“.... data.php?q =”+ y)

这是写,我可以传递这样的价值吗?  你能建议我解决吗? 提前致谢。

2 个答案:

答案 0 :(得分:2)

嗯,是的,document.getElementById('var4')获取id为'var4'的HTML元素。它没有为您提供HTML元素的,它为您提供了整个元素 y.value会给你价值。

我不确定我是否正确理解了这种情况,但是如果你只想将变量从PHP传递给Javascript,则不需要创建隐藏的输入元素来执行此操作。相反,使用这样的东西:

<script type="text/javascript" charset="utf-8">
  var myVars = <?php echo json_encode($myVars); ?>;
</script>

这样变量可以直接作为Javascript变量使用,不需要获取元素。

答案 1 :(得分:0)

document.getElementById返回带有指定id的html元素(因此HTMLInputElement);阅读其value以获取所需的值。

var y = document.getElementById('var4').value;

"...data.php?q="+y没问题。您可以使用$_GET['y']在PHP页面中读取传递的值。只需确保y不是NaNundefined