使用所选选项

时间:2015-09-30 17:07:13

标签: php jquery

我有一个select元素,它包含数据库中序列的值:

<option value="1">one</option>
<option value="2">two</option>

然后我有这个PHP代码将表数据放入数组

<?php
$return_arr = array();
$sql="SELECT * from tickets_standardresponses ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs)) {
    $return_arr[] = array('sequence' => $result["sequence"], 'response' => $result["response"]);
}
$data = json_encode($return_arr);
?>
<script type="text/javascript">
$(document).ready(function(){
    var data = <?php echo $data; ?>;
    $('#standard_response').on('change',function() {

    });
});
</script>

如何根据所选的textarea

填写option

例如,如果所选选项的值= 1,我想从序列= 1的数组中放入响应数据

我不想使用Ajax

来使用GET / POST请求

3 个答案:

答案 0 :(得分:1)

        var data = <?php echo $data; ?>;

        $('#response').on('change', function() {

            var sequence = $(this).val();
            //Check each object in the data array
            $.each(data, function( index, obj ) {
                if (obj.sequence === sequence) {
                    //The "result" textarea
                    $('#result').text(obj.response);
                }
            });
        });

您必须遍历数据数组并检查每个对象序列,看它是否与所选选项的值匹配。

注意:确保sequence参数是字符串或将选项值转换为整数。

答案 1 :(得分:1)

这是未经测试但应该让你接近。使用$ .grep将在数据数组中搜索与序列匹配的任何对象,并将这些对象返回到matches数组。因为应该只有一个。你可以输出第一个匹配的响应。

$('#standard_response').on('change',function() {
    var seq = $(this).val();
    var matches = $.grep(data, function(e) { return e.sequence == seq });
    if(matches.length > 0){
        $('textarea').text(matches[0].response);
    }
});

答案 2 :(得分:0)

因为,Dropdown完全不可见。 我假设类名为&#39; SequenceSelect&#39;,它也用在脚本标记中。 因此,如果要更改选择下拉列表的类名,也可以更改脚本标记。

<select class='SequenceSelect'>
    <option value="1">one</option>
    <option value="2">two</option>
</select>

<div class="ShowSequenceResponse">
    <textarea name="SequenceRespeonse"></textarea>
</div>

<script>
    $('.SequenceSelect').change(function(){
        var SequenceNo= $('.SequenceSelect').val();
        $.ajax({url:"AjaxSequenceSelect.php?SequenceNo="+SequenceNo,cache:false,success:function(result){
            $('#ShowSequenceResponse').html(result);
        }});
    });
</script>

创建一个页面 AjaxSequenceSelect.php (此页面用于脚本标记,因此请注意。)

<?php

extract($_GET);

$sql="SELECT * from tickets_standardresponses WHERE sequence='$SequenceNo'";
$rs=mysql_query($sql,$conn);
while($result=mysql_fetch_array($rs))
{
    $Response=$result['response'];
}
?>

<textarea name="SequenceRespeonse"><?echo $Response;?></textarea>