【问题标题】:Text area that varies depending on the selected item in the dropdown menu文本区域因下拉菜单中的所选项目而异
【发布时间】:2013-10-23 04:02:34
【问题描述】:

已解决...可以关闭...

我有一个下拉菜单和一个文本区域,我可以在其中输入不同的文字,具体取决于在下拉菜单中选择的项目(动态)。

我的 html-php 代码是这样的:

<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-2.0.3.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $('#copyright_titles').change(function () {                
                var isFirstSelected = $("#copyright_titles option:first-child" ).is(':selected');
                var isLastSelected = $("#copyright_titles option:last-child" ).is(':selected');

                if (isFirstSelected) {
                     $('#copyright_text').hide();
                     return;
                }

                $('#copyright_text').attr("readonly",isLastSelected?false:true);


                $.ajax({ type: "GET", url: "copyrights.xml", dataType: "xml", success: function(xml) {

                    $(xml).find('copyright').each(function() {

                      var copyright_title_selected = $("#copyright_titles option:selected").text();
                      var title = $(this).find('title').text();
                      var text = $(this).find('text').text();

                      if (title === copyright_title_selected) {
                          $('#copyright_text').text(text);
                      }

                    });
                  },
                  error: function(request, error, tipo_errore) { alert(error+': '+ tipo_errore); }
                });


                $('#copyright_text').show();
            });
        });
    </script>
</head>
<body>

    <form name="test" action="test.php" method="post">
        <table>
            <tr>
                    <td>Copyright:</td>
                    <td>
                        <select id='copyright_titles'>
                            <?php
                                $xml = simplexml_load_file('copyrights.xml');
                                $i = 0;
                                foreach($xml->copyright as $copyright)
                                {
                                    $i++;
                                    echo '<option value="copyright'.$i.'">'.$copyright->title.'</option>';
                                }
                            ?>
                        </select>
                    </td>
            </tr>
            <tr>
                    <td></td><td>
                        <textarea id='copyright_text' rows="6" cols="65" style="display:none"></textarea>
                    </td>
            </tr>
        </table>
    </form>

</body>

文本来自这个 xml 文件:

<copyrights>
<copyright>
    <title>free</title>
    <text></text>
</copyright>
<copyright>
    <title>copyright1</title>
    <text>text1</text>
</copyright>
<copyright>
    <title>copyright2</title>
    <text>text2</text>
</copyright>
<copyright>
    <title>copyright3</title>
    <text>text3</text>
</copyright>
<copyright>
    <title>other</title>
    <text></text>
</copyright>

【问题讨论】:

  • 你的文字有多大?
  • 这是对版权预设的描述...

标签: javascript php html css dom


【解决方案1】:

demo

请根据您的代码更改选择列表 HTML:

<select id="selectMe">
   <option value=""></option>
    <option value="option1">option1</option>
    <option value="option2">option2</option>
</select>
<br><br><br>

<textarea name="copyright_text" id="copyright_text" cols="20" rows="7">

</textarea>

JS:

$(document).ready(function () {

    $('#selectMe').change(function () {

        $('#copyright_text').html($( "#selectMe option:selected" ).text());

    })
});

【讨论】:

  • 只需将 JS 代码添加到您的带有
  • ...我无法回答,因为我没有 10 名声望:(
  • 我在表格底部写了这个:
  • 但是要放在文本区域中的文本,我放在哪里?
  • 你的期权价值是什么??在我的回答中,选项中的值反映在 textarea 中。
【解决方案2】:

最好使用jQuery.Get() 方法填充SELECT 列表客户端而不是使用PHP 的服务器端。您可以异步加载 XML 文件并创建一个事件处理程序,以在 SELECT 更改时更新 TEXTAREA 值。

【讨论】:

    【解决方案3】:
       <select name="copyright_titles" id='copyright_titles'>
                                <?php
                                    $xml = simplexml_load_file('copyrights.xml');
                                    $i = 0;
                                    foreach($xml->copyright as $copyright)
                                    {
                                        $i++;
                                        echo '<option value=".$copyright->text.">'.$copyright->title.'</option>';
                                    }
                                ?>
                            </select>
    

    //jquery函数

    $('#copyright_titles').change(function() { $('#copyright_text').attr('val',$('#copyright_titles').val()); });
    

    【讨论】:

    • 我认为他是在使用 XML 文件中相关 &lt;text&gt;&lt;/text&gt; 节点的内容而不是下拉列表的内容填充 textarea 之后,该下拉列表的值应保留为版权实体的 ID。
    • 请在使用此代码之前包含jquery库。您可以找到jquery库here
    • 如果您检查代码..他将计数器值存储为 id,选择的文本是标题
    • 我在标签 中写了这个:
    • 但是要放在文本区域中的文本,我放在哪里?
    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2015-06-23
    • 1970-01-01
    相关资源
    最近更新 更多