2012-03-12 20 views
0

同じフォームの入力ボックスに選択ボックスで選択した値を追加する必要があり、これについて最善の方法がわかりません。選択ボックスにはユーザーの電子メールアドレスが含まれ、入力ボックスには複数の電子メールアドレスが含まれている必要があります。アイデアは、選択ボックスから電子メールアドレスを選択すると自動的に入力に追加されるか、入力ボックスの値である変数にPHPを追加してページをリロードする追加ボタンをクリックするというものです。私はフォーム内にフォームを持つことでこれをしようとしましたが、これはうまくいかない方法です。フォームで選択ボックスを持つ方法を下の入力ボックスに入力します

多くのありがとうございます。

+0

を役に立てば幸いこれを行うためのjavascriptではない – Kaushtuv

答えて

1

まあ、selectのonchangeイベントでは、一緒に連結されたすべての選択されたオプションに入力値を設定します。 jQueryの中で再び

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

はここにいくつかの擬似コードだ

$('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

+0

私はあなたの質問を誤って解釈しました。私はそれが私のコードが機能するマルチセレクトボックスだと仮定しました。 あなたのために、選択した値をテキストボックスの値に追加して、オプションを未選択にリセットするだけです。 上記のコードを編集しました。 – DanRedux

+0

あなたの記事からhttp://jsfiddle.net/tYvQ8/518/に出てきたコードです。 – aHunter

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のheadセクションにそれを置くことができます。

<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> 

はそれがPHPを使用する理由

関連する問題