表格中不能使用NAME我可以使用ID吗?

时间:2014-02-05 14:40:04

标签: php forms

我正在开发一个使用Kohana开发的项目,由于某些条件,我无法在表单中使用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("me@mail.com","From contact form",$message,"From: $from\n");
mail("me@mail.com","From contact form",$message,"From: $from\n");
header('Location: faq');
?>

任何替代方法请

2 个答案:

答案 0 :(得分:1)

当您在服务器端发布表单时,您可以按名称访问该字段。现在您没有使用该名称,而不是您正在使用该ID,我建议您使用javascript ajax方法发布表单。这是唯一可用的替代方法。

答案 1 :(得分:0)

发布表单时,表单将转换为键/值对并发送到服务器。例如......

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

的形式发送到服务器
MyName=MyValue

除非浏览器可以形成键/值对,否则它不会发送数据 - 无论您是缺少键(来自name属性)还是值(例如未选中的复选框),都是如此。

您可以使用JavaScript迭代表单并使用不同的属性(例如您的ID)创建表单帖子,但如果您有权将JavaScript添加到此表单,则添加名称会更容易。