我有一个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请求答案 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>