1

Select ドロップダウンの結果を関連するテキスト ボックスに入力する必要があります。

これまでの私のJavascriptは

<script language="JavaScript">
var mytextbox = document.getElementById('error');
var mydropdown = document.getElementById('errormsg_id');

mydropdown.onchange = function(){
     mytextbox.value = this.value;
}
</script>

私の選択ボックスとテキスト ボックスは、クエリからの配列として構築されているため、多数あります。対応するテキスト ボックスに、隣の Select からの結果を入力できるようにする必要があります。

何か案は?

ありがとう

    <td width="1%">

    <select style="width:100%" name="errormsg_id[]"  id="errormsg_id[]">

    <?php do { ?> 

    <option value="<?php echo  $row_rserrormsg['errormsg_id']?>"
    <?php if ($row_rsdates['errormsg_id'] == $row_rserrormsg['errormsg_id'])                 {              echo("selected='selected'"); } ; ?> >
<?php echo $row_rserrormsg['error_message']?></option>

<?php } while ($row_rserrormsg = mysql_fetch_assoc($rserrormsg)); ?>

<?php  mysql_data_seek($rserrormsg, 0);
$row_rserrormsg = mysql_fetch_assoc($rserrormsg);?>
</select>
</td>  

<TD  align="center" class="adminuser">
<input style="width:96%;text-align:left;"  autocomplete="on"  title="Enter Error    Message" type="text" name="error[]" id="error[]" value="<?php echo $row_rsdates['error_message']; ?>" maxlength="100"/> 
</TD>
4

3 に答える 3

0

jQueryを使用し、HTMLが次のようになっていると仮定します。

<table>
    <tr>
        <td><select class="my_select" name="errormsg_id1[]" id="errormsg_id1">...</select></td>
        <td><input name="errormsg_id1_txt" id="errormsg_id1_txt" title="..." />
    </tr>
    ...
    <tr>
        <td><select class="my_select" name="errormsg_idX[]" id="errormsg_idX">...</select></td>
        <td><input name="errormsg_idX_txt" id="errormsg_idX_txt" title="..." />
    </tr>
</table>

これは、jQueryを使用して実行できます。

$(document).ready(function(){
    $('.my_select').change(function(){
        $('#'+$(this).attr('id')+'_txt').val($(this).val());
    });
});

それが正しいことを願って、それをテストする時間がありません...

于 2012-06-25T13:55:39.600 に答える
0

サンプル選択で動作させる方法に関するJSFiddle/DEMOは次のとおりです。

このアプローチは、入力を手動でインクリメントしてフィールド名を選択する必要がないため、@shadyyx よりも少し優れていると思います。

<table>
<tr>
    <td><select class="select" name="errormsg_id[]">
            <option val="test1">Test1</option>               
            <option val="test2">Test2</option>                
            <option val="test3">Test3</option>
        </select></td>
    <td><input class="error_text" name="errormsg_id_txt[]" title="..." />
</tr>
...
<tr>
    <td><select class="select" name="errormsg_id[]">               
            <option val="test1">Test1</option>               
            <option val="test2">Test2</option>                
            <option val="test3">Test3</option>
        </select></td>
    <td><input class="error_text" name="errormsg_id_txt[]" title="..." />
</tr>
</table>

そしてJQuery:

$(document).ready(function(){
    $('.select').change(function(){
       $(this).parent().parent().find('.error_text').val($(this).val());
    });
});

注意:プレーンな Javascript を使用している場合は、この DEMOを参照してください。

<table>
<tr>
    <td><select class="select" name="errormsg_id[]" id="errormsg_id1" onChange="update('errormsg_id1')">
            <option val="test1">Test1</option>               
            <option val="test2">Test2</option>                
            <option val="test3">Test3</option>
        </select></td>
    <td><input class="error_text"name="errormsg_id_txt[]" id="errormsg_id_txt1" title="..." />
</tr>
...
<tr>
    <td><select class="select" name="errormsg_id[]" id="errormsg_id2" onChange="update('errormsg_id2')">               
            <option val="test1">Test1</option>               
            <option val="test2">Test2</option>                
            <option val="test3">Test3</option>
        </select></td>
    <td><input class="error_text" name="errormsg_id_txt[]" id="errormsg_id_txt2" title="..." />
</tr>
</table>

そしてJavascript:

function update(element){
    var e = document.getElementById(element);
    var id = element.substring(element.length-1);
    document.getElementById("errormsg_id_txt"+id).value = e.value;
}
于 2012-06-25T14:47:23.820 に答える
-1

対応する要素のセットを一意に識別する方法を考える必要があります。私が提案する最も便利な方法は、データ行の主キー値を使用することです。

そして例は次のようになります

while($row = mysqli_fetch_assoc($result)) {
   $id = $row['id']; //A primary key field


   echo '<input type="text" name="text'.$id.'" id="text'.$id.'" />';
   echo '<select name="select'.$id.'" id="select'.$id.'" />...</select>";
}

次に、選択メニューから関数を呼び出して、関連するテキストボックスのみを更新します。上記の選択部分を更新して、これに似たものを読んでください。

echo '<select name="select'.$id.'" id="select'.$id.'" onchange="updateBox(\'text'.$id.'\', this.value)" />...</select>";

次に、テキストボックスを更新するための非常に単純な関数を作成します。

function updateBox(element, value) {
    el = document.getElementById(element);
    el.value = value;
}
于 2012-06-25T14:58:47.807 に答える