我有这些代码:
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'
是一个未定义的变量。你能告诉我为什么吗?
谢谢。
答案 0 :(得分:4)
$_POST
值通过元素的name
属性而不是ID传递。试试这个:
<input type="text" value=0 name="copy_to" id="copy_to"/>
并确保在PHP变量中使用下划线:
$test = $_POST['copy_to'];
答案 1 :(得分:2)
需要$ _POST [&#39; a&#39;] ID未提交到帖子数组中,它是名称属性
答案 2 :(得分:0)
因为您的表单中没有名称为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>
答案 3 :(得分:0)
$_POST
将根据表单元素的name
属性包含表单字段的值。
<input type="text" name="copy_from"/>
将成为$_POST['copy_from']
和
<input type="text" name="copy_to"/>
将成为$_POST['copy_to']
您正在使用输入的id
属性中的值(并且拼写不一致),因此PHP未定义。
答案 4 :(得分:-1)
它应该是_
而不是-
。
$_POST['a']
- 属性,它应该是name
。 name-attribute用于指定将GET或POST参数传递给Web应用程序的名称/标识符。 id属性主要用于标识客户端的HTML元素,例如用javascript做一些事情。