无法访问HTML中的输入dom变量

时间:2014-05-14 18:50:30

标签: php html dom getelementbyid

我有这个HTML文档(test1.html):

<!DOCTYPE html>
<html>
<body>

First name: <input type="text" id="firstname" name="firstname" value="VALUE123"><br>

<?php
echo "Hello<br>";
echo "document.getElementById('firstname').value" ;
?>

</body>
</html>

输出为:

First name: VALUE123

Hello

document.getElementById('firstname').value    <=====================

如何纠正代码,以便输出的最后一行显示VALUE123而不是变量名本身?

我必须使用PHP(没有Javascript),我需要使用firstname变量在PHP中设置setcookie()。

7 个答案:

答案 0 :(得分:0)

在document.getelement行周围放置一个SCRIPT标记。它现在被认为是html。试试

<script>
document.write(document.getElementById("yourfield").value);
</script>

答案 1 :(得分:0)

您正尝试通过PHP访问DOM元素的值。除非您向服务器发出POST或GET请求,否则这是不可能的,在服务器中处理数据并将其作为响应发送回客户端。

与JavaScript不同,PHP无法查看页面上发生的情况,除非您先将其发送到服务器。

答案 2 :(得分:0)

行document.getElementById(&#39; firstname&#39;)。值是javascript,你不能这样使用它。

如果你需要像你一样在html中打印,你可以使用一些jquery,也许是这样:

<!DOCTYPE html>
<html>
<body>

First name: <input type="text" id="firstname" name="firstname" value="VALUE123"><br>

<?php
echo "Hello<br>";
?>

<span id="showName"></span>

</body>
<script>
   $('#showName').text($('#firstname').attr('value'));
</script>
</html>

答案 3 :(得分:0)

我怀疑你想要达到的目标是这样的:

<!DOCTYPE html>
<html>
<body>
<form method="POST">
First name: <input type="text" name="firstname" value="VALUE123"><br> 
<input type="submit" value="send"/>
</form>
<?php
echo "Hello<br>";
echo $_POST['firstname']";
?>

</body>
</html>

将服务器端(php)视为有点像构建列车集

和客户端(javascript / html / css)就像玩它一样:)

如果您想添加更多曲目或更改布局,则可以。但你必须先停止玩它然后回到施​​工阶段。或者在php的情况下,根据您提供的数据构建一个全新的轨道。

可以在操作时修改实时布局。你必须阅读ajax:)

答案 4 :(得分:0)

您无法像这样访问JavaScript变量。如果你想设置一个cookie,那就从js开始,有一些随时可用的工具。在Google中寻找任何“setcookie JavaScript”。但我认为您还需要了解服务器端发生的情况以及客户端的情况。而且要详细解释这个问题需要的不仅仅是一个答案。

答案 5 :(得分:0)

  1. 如果您尝试打印input的值,那么您就不需要PHP。它可以通过JavaScript完成。

  2. 显然你的脚本不起作用,因为PHP是服务器端而且不能打印DOM元素。并且您正在尝试打印没有<script>标记

  3. 的JavaScript语法

答案 6 :(得分:0)

<?php
/*
  The PHP setcookie() function sends an HTTP cookie to a client.
  Syntax: setcookie(name,value,expire,path,domain,secure)
  Only name and value are requiered
*/

  if ( isset ($_POST['firstname']) )
  {  // Client did send (an other) firstname.
     $fnValue = $_POST['firstname'];
     $expire = time()+60*60*24*3; // 60s 60m 24h 3d
     setcookie('firstname',$fnValue,$expire);
  }
  else
  {
     if (isset($_COOKIE['firstname']))
         $fnValue = $_COOKIE['firstname'];
     else
         $fnValue = "";
  }
?>

<!DOCTYPE html>
<html>
<head>
</head>
<body>

    <form method="POST">
        First name: <input type="text" id="firstname" name="firstname"><br>
        <input type="submit" value="send">
    </form>

   <?php
   if ( strlen($fnValue) > 0 )
   {
       echo "Hello<br>";
       echo $fnValue;
   }
   ?>

</body>
</html>