2014-02-05 43 views
0

我正在開發一個使用Kohana開發的項目,並且由於某些情況,我無法在窗體中使用NAME,而是我可以使用ID,但我嘗試使用以下方法,但沒有奏效。無法在表單中使用NAME我可以使用ID嗎?

<form action="sendmail.php" method="post"> 
    <p><input type="text" size="30" style="border-radius:15px; border:2px solid #000; padding:5px;" placeholder="Name" id="contname" /><br /> 
    <br /> 
    <input type="text" size="30" style="border-radius:15px; border:2px solid #000; padding:5px;" placeholder="Email" id="contemail" /><br /> 
    <br /> 
    <input type="text" size="30" style="border-radius:15px; border:2px solid #000; padding:5px;" placeholder="Subject" id="contsubject" /><br /> 
    <br /> 
    <textarea style="border-radius:5px; border:2px solid #000; padding:5px; width:320px; height:120px;" id="contmessage" placeholder="Message"></textarea><br /> 
    <br /> 
    <input type="submit" value="SUBMIT" style="background-color:#9377dd; border-radius:10px; padding-top:3px; padding-bottom:3px; padding-left:16px; padding-right:16px;" /></p> 
</form> 

sendmail.php

<?php 
$from = $_POST["contemail"]; 
$message = $_POST["contname"] . "<br/>". $_POST["contsubject"] . "<br/>" . $_POST["contmessage"]; 
mail("[email protected]","From contact form",$message,"From: $from\n"); 
mail("[email protected]","From contact form",$message,"From: $from\n"); 
header('Location: faq'); 
?> 

任何替代方法請???

+1

替代方法是**使用名稱屬性**。這就是它的目的。當然,你不能只使用它*,使用完全不相關的東西(id),並期望它能夠工作。 – meagar

+0

使用類似jQuery的庫,然後使用字段'id's手動構建post對象併發送。 –

+0

沒有任何表單元素被命名。 I.e .:'name =「contemail」'等 –

回答

0

當您發佈表單時,表單會轉換爲鍵/值對併發送到服務器。例如...

<input name="MyName" value="MyValue"> 

被髮送到服務器

MyName=MyValue 

除非瀏覽器就可以形成一個鍵/值對將不會發送數據 - 無論您是丟失這是真的鍵(來自name屬性)或值(例如未選中的複選框)。

您可以使用JavaScript遍歷表單並使用不同的屬性(例如您的ID)創建表單帖子,但是如果您有權將JavaScript添加到此表單,只需添加名稱就會更容易。

+0

當提及將'MyName'傳遞給'$ MyName = $ _ POST ['myname'];''這當然會失敗。許多人都沒有意識到這一點。 –

+0

@ Fred-ii-是的,的確如此 - 您可以使用區分大小寫的$ _POST ['MyName']' – Fenton

+0

來訪問它。是的,我知道;-)但有些則不。我總是使用(全部)小寫字母。 –

1

當您發佈表單,然後在服務器端,您可以通過名稱訪問該字段。現在你不使用這個名字,而是你使用了id,那麼我會建議你使用javascript ajax方法來發布表單。這是唯一可用的替代方法。

+0

是的,一定要試一試。 – lock

相關問題