2012-03-12 47 views
0

我有一个要求,将选择框中选择的值添加到具有相同表单的输入框,我不知道如何最好地去解决这个问题。选择框包含用户电子邮件地址,输入框需要包含多个电子邮件地址。这个想法是,当您从选择框中选择一个电子邮件地址时,它会自动添加到输入中,或者通过单击添加按钮来重新加载PHP中的页面,然后添加到作为输入框值的变量中。我试图通过在窗体中创建窗体来做到这一点,但这并不奏效,还有更好的方法吗?如何使用表单中的选择框填充下面的输入框使用php

非常感谢。

+0

为什么使用PHP而不是JavaScript来做到这一点 – Kaushtuv 2012-03-12 04:14:30

回答

1

那么,在select的onchange事件中,将输入值设置为连接在一起的所有选定选项。

下面是一些伪代码:

on select changed { 
    str= '' 
    for every element 
    if checked 
     str = str + value + ',' 
    set input's value to the variable str 

再次jQuery中:

$('select').onchange(function(){ 
    str=''; 
    $('option:selected').each(function(){ 
    str+=this.value+','; }); 
    $('input:text').value(str); }); 

编辑:这是你想要的东西,没有多选。

$('select').onchange(function(){ 
    $('option:selected').each(function(){ 
    $('input:text').val($('input:text').val()+$(this).val()+',');}) 
    .removeAttr('selected'); }); 
+0

感谢您的回应,它给了我一些开始,但这里的问题是首先str函数在每次运行时都会重新启动,所以它不会连接字符串(http://jsfiddle.net/tYvQ8/511/)。然后,其次,如果用户错误地选择了它会发生什么,我会如何将它添加到文本按钮来添加字符串? – aHunter 2012-03-12 04:30:53

+0

我错误地解释了你的问题,我认为这是一个多选框,我的代码可以工作。 对于您,您只需将所选值附加到文本框值,然后将选项重置为未选中。 上面编辑的代码。 – DanRedux 2012-03-12 04:32:45

+0

非常感谢这是我从你的文章中提出的http://jsfiddle.net/tYvQ8/518/的代码。 – aHunter 2012-03-12 04:50:06

0

你可以试试这个:

编写代码的网页的DOCTYPE前顶部。

<?php 
if(isset($_POST['add'])) 
{ 
    $previous_email = $_POST['txt_email']; 
    $emails = $_POST['select_email'].",".$previous_email; 
} 
else 
{ 
    $emails = ''; 
} 
?> 

JavaScript的:你可以把它放在你的HTML文档

<script> 
function add_email() 
{ 
    document.getElementById('txt_email').value = document.getElementById('select_email').value +','+ document.getElementById('txt_email').value;  
} 
</script> 

头部分最后的HTML:

<body> 

    <form method="post" action="" name="myform"> 
    <select name="select_email" id="select_email" onchange="add_email();"> 
    <option value="[email protected]">[email protected]</option> 
    <option value="[email protected]">[email protected]</option> 
    <option value="[email protected]">[email protected]</option> 
    </select> 

    <textarea name="txt_email" id="txt_email"><?=$emails;?></textarea> 
    <input type="submit" value="add" name="add"/> 
    </form> 

</body> 

希望它可以帮助

相关问题