2012-02-05 90 views
0

我有這些代碼:爲什麼這個代碼中的變量未定義? - 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'是一個不確定的變量。你能告訴我爲什麼? 謝謝。

+0

請閱讀如何使用[表單以及如何從PHP表單獲取數據](http://www.tizag.com/phpT/forms.php)。類似的問題已經被問及時間。它們通常最終會過於本地化,因爲手頭的真實問題無法通過所提供的文本進行搜索。 – animuson 2012-02-05 00:48:12

回答

4
$_POST

值通過一個元素的屬性name傳遞而不是ID。試試這個:

<input type="text" value=0 name="copy_to" id="copy_to"/> 

並確保你在你的PHP變量使用下劃線:

$test = $_POST['copy_to']; 
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> 
+0

我的不好,但它仍然給我錯誤。 :( – 2012-02-05 00:42:38

+0

@Renzo Montejo:你剛剛檢查了我的更新答案嗎? – 2012-02-05 00:46:18

-1

這應該是一個_,而不是-

編輯:天啊,它更糟。它應該是$_POST['a'],因爲name-屬性。 name-attribute用於指定將GET或POST參數傳遞給Web應用程序的名稱/標識符。 id-屬性主要用於在客戶端識別HTML元素,例如,當做一些與JavaScript的東西。

+0

我的壞在那裏。但仍然,它給了我錯誤。:( – 2012-02-05 00:41:42

+0

這是一個更正,但它仍然是錯誤的。是在請求中發送的,而不是'id'。 – mrlee 2012-02-05 00:43:34

2

需要被$ _POST [「A」]的ID不提交到郵政陣列,它的名稱屬性

0

$_POST將包含基於表單元素的name屬性的表單字段的值。

<input type="text" name="copy_from"/>將成爲$_POST['copy_from']

<input type="text" name="copy_to"/>將成爲$_POST['copy_to']

您輸入的id屬性使用值(和拼寫錯誤不一致),所以它是未定義到PHP 。

相關問題