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 选择选项属性的主要内容,如果未能解决你的问题,请参考以下文章
使用 mail() PHP 脚本的 jQuery AJAX 表单发送电子邮件,但来自 HTML 表单的 POST 数据未定义