为什么这个代码中的变量未定义? - PHP
我有这些代码:为什么这个代码中的变量未定义? - PHP
testing.php
<html>
<head>
<script type="text/javascript">
function copy_data(id){
var a = document.getElementById(id).value;
document.getElementById("copy_to").value=a;
}
</script>
</head>
<body>
<form action="testprocess.php" method="post">
<input type="text" name ="a" id="copy_from" onkeyup="copy_data('copy_from')"/>
<input type="text" value=0 name ="b" id="copy_to"/>
<input type="submit">
</form>
</body>
</html>
testprocess.php
<?php
$test = $_POST['copy_to'];
echo $test;
?>
我得到一个错误,说'copy-to'
是一个不确定的变量。你能告诉我为什么? 谢谢。
$_POST
值通过一个元素的属性name
传递而不是ID。试试这个:
<input type="text" value=0 name="copy_to" id="copy_to"/>
并确保你在你的PHP变量使用下划线:
$test = $_POST['copy_to'];
因为您的表单中没有名称为copy_to
的元素。
如下尝试:
<form action="testprocess.php" method="post">
<input type="text" name ="a" id="copy_from" onkeyup="copy_data('copy_from')"/>
<input type="text" value=0 name ="copy_to" id="copy_to"/>
<input type="submit">
</form>
我的不好,但它仍然给我错误。 :( – 2012-02-05 00:42:38
@Renzo Montejo:你刚刚检查了我的更新答案吗? – 2012-02-05 00:46:18
这应该是一个_
,而不是-
。
编辑:天啊,它更糟。它应该是$_POST['a']
,因为name
-属性。 name-attribute用于指定将GET或POST参数传递给Web应用程序的名称/标识符。 id-属性主要用于在客户端识别HTML元素,例如,当做一些与JavaScript的东西。
我的坏在那里。但仍然,它给了我错误。:( – 2012-02-05 00:41:42
这是一个更正,但它仍然是错误的。是在请求中发送的,而不是'id'。 – mrlee 2012-02-05 00:43:34
需要被$ _POST [“A”]的ID不提交到邮政阵列,它的名称属性
$_POST
将包含基于表单元素的name
属性的表单字段的值。
<input type="text" name="copy_from"/>
将成为$_POST['copy_from']
和
<input type="text" name="copy_to"/>
将成为$_POST['copy_to']
您输入的id
属性使用值(和拼写错误不一致),所以它是未定义到PHP 。
请阅读如何使用[表单以及如何从PHP表单获取数据](http://www.tizag.com/phpT/forms.php)。类似的问题已经被问及时间。它们通常最终会过于本地化,因为手头的真实问题无法通过所提供的文本进行搜索。 – animuson 2012-02-05 00:48:12