2014-02-05 44 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

相关问题