2010-07-13 71 views
1

我有HTML代碼像下面通行證HTML變量到PHP

<input type = "textarea" id="sentence1"> Here is my sentence </textarea> 
<input type="hidden" name="sentence2" value="This is another sentence"> 

PHP:

$_POST['sentence1'] //shows nothing 
$_POST['sentence2'] // works fine 

我想SENTENCE1的價值也不過我有這樣一個分散的代碼,textarea我不能改變「ID」爲「名稱」,否則我將不得不在不同的文件中做出很多改變。

我必須將兩個句子都轉移到PHP,所以請幫助我如何做到這一點?

+2

你是什麼意思?抱歉,我不明白你想說什麼。 – fawad 2010-07-13 10:14:10

+6

從[常見問題](http://stackoverflow.com/faq):*當你決定哪個答案是最有幫助的你,通過點擊複選框輪廓的左側將其標記爲接受的答案回答。這讓其他人知道你已經收到了你的問題的一個很好的答案。這樣做很有幫助,因爲它向其他人表明您從社區中獲得價值。 (如果你不這樣做,人們會經常禮貌地要求你回去接受更多問題的答案!)* – Gordon 2010-07-13 10:15:18

+1

哦,我明白了。其實我是新用戶,但現在不用擔心,我會照顧這個選項。 謝謝。 – fawad 2010-07-13 10:18:51

回答

3

您的代碼是錯誤的。你應該開始使用一個HTML驗證的瀏覽器,它會抓住它。

<textarea name="sentence1" id="sentence1"> Here is my sentence </textarea> 

<input type="hidden" name="sentence2" value="This is another sentence" />

+0

是的,這就是我想要的。 非常感謝。 它正在工作。 – fawad 2010-07-13 10:22:26

5

沒有輸入type="textarea"name屬性不能使用id屬性。這不是如何傳輸的,也沒有辦法從普通的HTML中改變它。表單<input>元素以其namevalue屬性進行傳輸。

HTML Form elements and attributes

+0

對不起,我的意思是 ... – fawad 2010-07-13 10:16:12

+3

這只是'';-)沒有'type' ... – 2010-07-13 10:19:08

0

你不能(至少不使用純HTML)請刷新你的知識。關於表單處理和處理狀態的W3C建議

控件的「控件名稱」由其名稱屬性 給出。 FORM元素中 FORM元素中控件的名稱屬性的 的範圍是FORM元素。

表單數據集是從成功控制

參見here構造的 控制名 /電流值對 的序列。

您可以使用Javascript將name-屬性動態添加到所有不帶相應屬性的表單元素。

3

變化

<input type = "textarea" id="sentence1"> Here is my sentence </textarea> 

<textarea id="sentence1" name="sentence1"> Here is my sentence </textarea> 

,你的PHP將工作。

0

但我有這樣一個分散的代碼,textarea我不能改變「ID」爲「名稱」,否則我將不得不在不同的文件中做出很多改變。然後可能這就是你應該開始的地方。 (注意:input/textarea元素可能同時具有名稱和id屬性。)

0

我假設你已經糾正了<input type="textarea">錯誤。如果我正確理解您的需求,則您知道該表單只傳遞name屬性的值,而不是id,但無法輕鬆更改。

我的建議是一個腳本到改變name屬性的值到了id的,或複製整個屬性,所以它的下兩個name可用和id

<script> 
var inputs = document.getElementsByTagName('input'); 
for (var i=0; i<inputs.length; i++) 
    inputs[i].parentNode.appendChild(inputs[i].cloneNode(false)); 
</script> 

並將其添加到頁面的末尾。對textareas也一樣。