不能访问HTML中的输入dom变量



我有这个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),我需要setcookie()内PHP使用firstname变量。

<?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>

在文档周围放置SCRIPT标记。getelement线。它现在被认为是html。试着

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

一行document.getElementById('firstname')。值是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>

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

<!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:)

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

与JavaScript不同,PHP无法看到页面本身发生了什么,除非你先将它发送给服务器。

你不能像这样访问JavaScript变量。如果你想设置一个cookie,从js中完成,有现成的工具。在谷歌中查找任何"setcookie JavaScript"。但我认为你还需要了解服务器端发生了什么,客户端发生了什么。要详细解释这一点,需要的远不止一个答案。

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

  2. 显然你的脚本不会工作,因为PHP是服务器端,不能打印DOM元素。你正在尝试打印javascript语法没有<script>标签

最新更新