PHP:HTML:在 POST 中发送 HTML 选择选项属性

Posted

技术标签:

【中文标题】PHP:HTML:在 POST 中发送 HTML 选择选项属性【英文标题】:PHP: HTML: send HTML select option attribute in POST 【发布时间】:2013-01-12 18:24:19 【问题描述】:

我想发送选定的项目值以及一些属性(stud_name)值。 php中是否有任何功能可以做到这一点?

这是一个例子。

<form name="add">
    Age: 

    <select name="age">
         <option value="1" stud_name="sre">23</option>
         <option value="2" stud_name="sam">24</option>
         <option value="5" stud_name="john">25</option>
     </select>

    <input type="submit" name="submit">

</form>

【问题讨论】:

AFAIK,您必须使用 javascript/jquery 来完成。我认为仅在 PHP 中是不可能的 我认为这些值是学生的 ID。获得 ID 后,您还可以使用学生姓名(来自数据库),对吗?不要依赖用户端。 @asprin, If then js中怎么做 或者您可以将 stud_name 添加到带有分隔符的值中。发布后,您可以在分隔符上划分它们。 【参考方案1】:
<form name="add" method="post">
     <p>Age:</p>
     <select name="age">
        <option value="1_sre">23</option>
        <option value="2_sam">24</option>
        <option value="5_john">25</option>
     </select>
     <input type="submit" name="submit"/>
</form>

您将在$_POST['age'] 中拥有选定的值,例如1_sre。然后您将能够拆分值并获得'stud_name'

$stud = explode("_",$_POST['age']);
$stud_id = $stud[0];
$stud_name = $stud[1];

【讨论】:

【参考方案2】:

你可以用 JQuery 做到这一点

简单地说:

   <form name='add'>
   Age: <select id="age" name='age'>
   <option value='1' stud_name='sre'>23</option>
   <option value='2' stud_name='sam'>24</option>
   <option value='5' stud_name='john'>25</option>
   </select>
   <input type='hidden' id="name" name="name" value=""/>
   <input type='submit' name='submit'/>
   </form>

在 Header 部分添加此代码:

<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>

现在的 JQuery 函数

<script type="text/javascript" language="javascript">
$(function() 
      $("#age").change(function()
      var studentNmae= $('option:selected', this).attr('stud_name');
      $('#name').val(studentNmae);
   );
);
</script>

您可以将这两个值都用作

$name = $_POST['name'];
$value = $_POST['age'];

【讨论】:

【参考方案3】:

您必须使用 JavaScript。浏览器只会发送所选选项的value(所以不是PHP的错)。

您的 JS 应该做的是挂钩表单的提交事件,并使用所选选项的 stud_name 值创建一个隐藏字段。然后这个隐藏字段会被发送到服务器。

话虽如此...您不应该通过客户端中继来提供正确的数据。您已经知道stud_name 对于服务器上的给定值应该是什么(因为您正在输出它)。因此,在处理表单时只需应用相同的逻辑即可。

【讨论】:

【参考方案4】:

只需将值和 stud_name 结合起来,例如1_sre 并在将其放入 php.ini 时拆分该值。 Javascript 看起来就像是敲碎了坚果的锤子。注:此方法假定您可以编辑 html。下面是 html 的样子:

<form name='add'>
Age: <select name='age'>
     <option value='1_sre'>23</option>
     <option value='2_sam>24</option>
     <option value='5_john>25</option>
     </select>
<input type='submit' name='submit'/>
</form>

【讨论】:

【参考方案5】:

你可以使用jquery函数。

<form name='add'>
   <input type='text' name='stud_name' id="stud_name" value=""/>
   Age: <select name='age' id="age">
   <option value='1' stud_name='sre'>23</option>
   <option value='2' stud_name='sam'>24</option>
   <option value='5' stud_name='john'>25</option>
   </select>
   <input type='submit' name='submit'/>
</form>

jquery 代码:

<script type="text/javascript" src="jquery.js"></script>

<script>
    $(function() 
          $("#age").change(function()
          var option = $('option:selected', this).attr('stud_name');
          $('#stud_name').val(option);
       );
    );
</script>

【讨论】:

以上是关于PHP:HTML:在 POST 中发送 HTML 选择选项属性的主要内容,如果未能解决你的问题,请参考以下文章

php怎么发送get/post请求

PHP $_POST 变量

使用 mail() PHP 脚本的 jQuery AJAX 表单发送电子邮件,但来自 HTML 表单的 POST 数据未定义

通过电子邮件发送带有 PHP 和 HTML 错误消息“Cannot POST mail.php”的表单

PHP中怎样发送post请求并获取网页?

如何以 PHP 形式从特定表 html $_POST[] 获取数据