javascript - 如何根据下拉选择使用单选按钮显示数据?
问题描述
我正在尝试动态生成前面有数据的单选按钮。要在单选按钮前面显示的数据基于下拉选择,该下拉选择还使用 javascript 在文本框中显示一些数据。
我尝试在字符串中使用选定的选项并在下一个查询中使用它,但我知道我做错了。
数据库连接
$db = pg_connect("");
$query = "select account_name,account_code,address1,address2,address3 FROM
customers";
$result = pg_query($db,$query);
//新查询
$sql1= "select name from conferences";
$result1= pg_query($db, $sql1);
//结尾
//新代码
<select class="form-control" id="conference" name="conference">
<option value="">Select Conference...</option>
<?php while($rows1 = pg_fetch_assoc($result1)) { ?>
<option value="<?= $rows1['code']; ?>"><?= $rows1['name']; ?></option>
<?php } ?>
</select>
<br>
// 新代码结束
下拉选择数据。
<select onchange="ChooseContact(this)" class="form-control"
id="account_name" name="account_name" >
<?php
while($rows= pg_fetch_assoc($result)){
echo '<option value=" '.$rows['address1'].' '.$rows['address2'].'
'.$rows['address3'].''.$rows['account_code'].'">'.$rows['account_name'].'
'.$_POST[$rows['account_code']].'
</option>';
}?>
</select>
使用 javascript 根据选择的值在文本区域中显示数据。(代码工作正常,直到这里)
<textarea readonly class="form-control" style="background-color: #F5F5F5;"
id="comment" rows="5" style="width:700px;"value=""placeholder="Address...">
</textarea>
<script>
function ChooseContact(data) {
document.getElementById ("comment").value = data.value;
}
</script>
根据所选选项在单选按钮前面显示数据(如果我在查询中使用一些随机值,则此代码有效,但如果我使用前一个查询中的所选值“account_code”则无效。我正在使用 POST GET 方法携带选定的值)
<?php
//新代码
$sql = "select order_number, order_date from orders where
customer_account_code = '3000614' and conference_code='DS19-'"; <-Data
gets displayed when put random value like this.
$code = $_GET[$rows['account_code']];
$conf = $_GET[$rows1['conference_code']];
$sql = "select order_number, order_date from orders where
customer_account_code = '$code' and conference_code= '$conf']"; <- But I
want to display the data against the selected value, i.e, the 'account_code'
in the variable $code from the dropdown select
//结尾
$res = pg_query($db,$sql);
while($value = pg_fetch_assoc($res) ){
echo "<input type='radio' name='answer'
value='".$value['order_number']." ".$value['order_date']."'>"
.$value['order_number'].$value['order_date']." </input><br />";
}
?>
我需要帮助找到将选定的“account_code”放入变量并在 $sql 查询中使用它的方法。
解决方案
请尝试使用此代码:(这对我有用)
1-将此行添加到您的 HTML 中<head>
:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>
2-将您的代码编辑为此:
下拉选择数据:
<select class="form-control" id="account_name" name="account_name">
<option value=""></option>
<?php while($rows = pg_fetch_assoc($result)) { ?>
<option value="<?= $rows['address1'].' '.$rows['address2'].' '.$rows['address3'].'-'.$rows['account_code']; ?>"><?= $rows['account_name']; ?></option>
<? } ?>
</select>
使用 jQuery 根据所选值在文本区域中显示数据:
<textarea readonly class="form-control" style="background-color: #F5F5F5;"
id="comment" rows="5" style="width:700px;" value="" placeholder="Address..."></textarea>
jQuery代码:
<script type="text/javascript">
$('#comment').val($('#account_name').val()); // MAKE A DEFAULT VALUE
(function($) {
$('#account_name').change(function() {
$('#results').html(''); // REMOVE THE OLD RESULTS
var option = $(this).val();
$('#comment').val(option);
// EDIT RADIO WITH AJAX
$.ajax({
type: "POST",
url: "path/test.php",
dataType:'JSON',
data: $('#account_name').serialize()
}).done(function(data) {
for (var i = 0; i < data.length; i++) {
// ADD RADIO TO DIV RESULTS
$('#results').append('<input type="radio" name="answer" value="'+data[i].order_number+'">'+data[i].order_date+'</input><br>');
}
});
});
})(jQuery);
</script>
之后,将此 HTML 添加到您的页面,以显示 AJAX 数据的结果
<!-- RADIOs -->
<div id="results"></div>
3- 创建一个新文件,如path/test.php
在此文件中,使用此 CODE 以JSON 形式返回值:)
<?php
header('Content-type: application/json');
// CONNECT (JUST USE YOUR CUSTOM CONNECTION METHOD & REQUIRE CONFIG FILE IF YOU WANT)
$db = pg_connect("");
$value = explode('-', $_POST['account_name']);
// EXPLODE AND GET LAST NUMBER AFTER < - >
$code = (int) end($value);
$sql = "select order_number, order_date from orders where customer_account_code = '$code'";
$res = pg_query($db, $sql);
// CREATE JSON RESULTS
$is = '';
while($data = pg_fetch_assoc($res)) {
$is .= json_encode($data).', ';
}
// AND GET ALL
echo '['.substr($is, 0, -2).']';
?>
推荐阅读
- caching - 在 .htaccess 中利用浏览器缓存代码不起作用
- javascript - 声明类型既不是“void”也不是“any”的函数必须返回一个值。打字稿/反应
- verilog - Verilog 计数器不会针对不同的时钟信号触发
- python - 动态创建 lambda 函数列表,其中每个下一个函数使用前一个函数
- arduino - ESP32 - 用串口连接 arduino nano 和 ESP32
- python - 如何在 postgres 上使用 SQLAlchemy 将元素插入嵌套的 JSONB 数组
- c - 当我的 argv [1] 时,我的 --help 信息不会打印的任何原因?任何建议表示赞赏
- javascript - Uncaught SyntaxError: Unexpected identifier is unexpected error
- html - 如何添加视频并在其上书写?
- javascript - 无法理解带有“this”关键字的函数的行为