jQuery和PHP更新文本字段中的选择框值

时间:2016-09-17 08:56:28

标签: php jquery html

我知道这个问题在其他几个方面已被问过很多次,但没有一个对我有帮助。所以,我用自己的语言对其进行了格式化。

我有一个像这样的选择框:

<select name="something">
    <option value="1"><?php echo $value1; ?> for <?php echo $value2; ?>
</select>
<input type="text" name="sometext" value="">

我希望在更改选择框选项时更新文本字段中的<?php echo $value1; ?>。为了清楚起见,我不希望文本字段中有value="1",我需要在那里value="1"出于某种原因,我不能用value="<?php echo $value1; ?>"替换它。我严格要求在文本字段中替换内部值<?php echo $value1; ?>。但我不知道如何实现它。请高手帮帮我。对于实时更改jQuery首选。

3 个答案:

答案 0 :(得分:2)

尝试以下代码:

<select name="something">
    <option value="1" data="<?php echo $value1; ?>"><?php echo $value1; ?> for <?php echo $value2; ?></option>
</select>
<input type="text" name="sometext" value="">

请参阅以下工作 HTML

&#13;
&#13;
jQuery(document).ready(function($){
  $('#something').change(function(){
    $('#sometext').val($(this).find(':selected').attr('data'));
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="something" id="something">
    <option value="1" data="value1">value1 form value01</option>
    <option value="1" data="value2">value2 form value02</option>
    <option value="1" data="value3">value3 form value03</option>
    <option value="1" data="value4">value4 form value04</option>
</select>
<input type="text" name="sometext" id="sometext" value="">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您需要获取所选的选项文本而不是通常的选项值,这很容易。

您无需添加任何数据属性即可实现此目的,因为有一种方法可以获取实际的选项文本。

这是一个有效的例子:

PHP用于填充选择元素(下面我显示静态HTML)

<select id="something" name="something">
    <?php foreach($selectList as $value=>$text){ ?>
        <option value="<?php echo $value;?>"> <?php echo $text;?> </option>
    <?php } ?>
</select>

<强> HTML

<select id="something" name="something">
    <option value="1"> Value 1 </option>
    <option value="2"> Value 2 </option>
    <option value="3"> Value 3 </option>
</select>
<input type="text" id="sometext" name="sometext" value=""/>

<强>的jQuery

$(document).ready(function(){

    $('#something').on('change',function(){
        var selectedText = $(this).children(':selected').text();
        $('#sometext').val(selectedText);
    });

});

这种方法快速且易于维护。

当然还有一个可以看到它的动作:https://jsfiddle.net/kzgapkt5

希望它有所帮助

答案 2 :(得分:0)

希望这对你有用,

$(document).ready(function() {
     $('select').change(function(){

       var selectedOption = $("select option:selected").text(); //Get the text
        selectedOption = selectedOption.split("for"); //split the 2 value by using for
        alert(selectedOption[0]); //Get the value before for

        $('input').val(selectedOption[0]);

    });
});