javascript - 在html输入字段中加载ajax值
问题描述
我在 index.php 文件中的数据库中有一个包含内容(课程标题)的下拉菜单。我得到下拉选择的数据并将其发送到 PHP 文件。在使用收到的(课程标题)的 PHP 文件中,我选择相关的课程(开始日期)和(结束日期)并使用 AJAX 将它们发送到 PHP 文件。
我有两个文本类型的输入标签,当用户单击课程标题时,我希望其值相关(开始日期)和(结束日期)。
当我在 div 中显示收到的 (Start Date) 和 (End Date) 时,它显示得很好,但是当我想设置输入标签的值相对于 start_date 和 end_date 时,它没有显示任何内容。
我是 ajax 和 jquery 的新手,不知道有什么问题
以下是我的 index.php
<!DOCTYPE html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<form method="post" action="insert.php">
<select name="training_title" id="dropdownList"">
<option value=""></option>
<?php
require('db.php');
$sql = "SELECT distinct(COURSE_TITALE) FROM [MicrosoftDynamicsAX].[dbo].[ETIS_Course_Final]";
$params = array();
$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$stmt = sqlsrv_query($conn, $sql, $params, $options);
$row_count = sqlsrv_num_rows($stmt);
if ($row_count === false)
echo "Error al obtener datos.";
else
while ($row = sqlsrv_fetch_array($stmt)) {
?>
<option name="training_title" value="<?php echo $row[0]; ?>"><?php echo $row[0]; ?></option>
<?php
}
sqlsrv_close($conn);
?>
</select>
<input type="text" name="start_data" id="start_data" value="">
<input type="text" name="end_date" id="end_date" VALUE="">
<button type="submit" name="submit" id="submit"> Submit</button>
</form>
<div id="result"></div>
<script>
$(document).ready(function () {
$('#dropdownList').on('change', function () {
var val1 = $("#dropdownList option:selected").val();
$.ajax({
type: 'POST',
url: 'test.php',
data: {text1: val1},
success: function (response) {
$('#result').html(response);
}
});
});
});
</script>
</body>
以下是 test.php 文件
<?php
$text1 = $_POST['text1'];
require('db.php');
$sql = "SELECT distinct(STARTDATETIME) FROM [MicrosoftDynamicsAX].[dbo].[ETIS_Course_Final] where COURSE_TITALE='$text1'";
$params = array();
$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$stmt = sqlsrv_query($conn, $sql, $params, $options);
$row_count = sqlsrv_num_rows($stmt);
if ($row_count === false)
echo "Error.";
else
while ($row = sqlsrv_fetch_array($stmt)) {
echo $row['STARTDATETIME']->format('d/m/y');
?>
<?php
}
$sql1 = "SELECT distinct(ENDDATETIME) FROM [MicrosoftDynamicsAX].[dbo].[ETIS_Course_Final] where COURSE_TITALE='$text1'";
$params1 = array();
$options1 = array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$stmt1 = sqlsrv_query($conn, $sql1, $params1, $options1);
$row_count = sqlsrv_num_rows($stmt1);
if ($row_count === false)
echo "Error.";
else
while ($row = sqlsrv_fetch_array($stmt1)) {
echo $row['ENDDATETIME']->format('d/m/y');
?>
<?php
}
sqlsrv_close($conn);
解决方案
您必须从 test.php 返回两个值,因此最好使用 json return。检查以下代码:
$(document).ready(function () {
$('#dropdownList').on('change', function () {
var val1 = $("#dropdownList option:selected").val();
$.ajax({
type: 'POST',
url: 'test.php',
data: {text1: val1},
dataType : 'json',
success: function (response) {
$('#start_data').val(response.STARTDATETIME);
$('#end_date').val(response.ENDDATETIME);
}
});
});
});
下面是 test.php 代码:
<?php
$text1 = $_POST['text1'];
$return_array = array('status'=>false,'STARTDATETIME'=>'','ENDDATETIME'=>'');
require('db.php');
$sql = "SELECT distinct(STARTDATETIME) FROM [MicrosoftDynamicsAX].[dbo].[ETIS_Course_Final] where COURSE_TITALE='$text1'";
$params = array();
$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$stmt = sqlsrv_query($conn, $sql, $params, $options);
$row_count = sqlsrv_num_rows($stmt);
if ($row_count === false){
//"Error.";
}
else{
while ($row = sqlsrv_fetch_array($stmt)) {
$return_array['STARTDATETIME'] = $row['STARTDATETIME']->format('d/m/y');
$return_array['status'] = true;
}
}
$sql1 = "SELECT distinct(ENDDATETIME) FROM [MicrosoftDynamicsAX].[dbo].[ETIS_Course_Final] where COURSE_TITALE='$text1'";
$params1 = array();
$options1 = array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$stmt1 = sqlsrv_query($conn, $sql1, $params1, $options1);
$row_count = sqlsrv_num_rows($stmt1);
if ($row_count === false){
//"Error.";
}
else{
while ($row = sqlsrv_fetch_array($stmt1)) {
$return_array['ENDDATETIME'] = $row['ENDDATETIME']->format('d/m/y');
$return_array['status'] = true;
}
}
sqlsrv_close($conn);
echo json_encode($return_array);
exit;
?>
推荐阅读
- sql - 如何按时间使用 Dense_rank() 顺序但忽略来自另一个列的重复项?
- monaco-editor - 未能添加新的摩纳哥语言;不知道我错过了什么
- oracle-adf - 在哪里检查它加载的 weblogic 服务器 xmlbeans 版本以及如何指向自定义 lib 版本?
- twitter - 如何获取带有链接或 url 链接的推文?
- javascript - 如何使用谷歌应用脚本在 gsheets 中自动填充公式
- ubuntu - E:存储库“http://ppa.launchpad.net/mc3man/xerus-media/ubuntu focus Release”没有发布文件
- javascript - 在高图中寻找自定义散点图
- node.js - Node+ExpressRouter -> CommonJS 到 ESM --> 导入路由 --> 错误 [ERR_MODULE_NOT_FOUND]: 找不到模块
- github - Github 分支保护规则,设置分支名称的模式
- adonis.js - Adonsjs 4 - 什么是 use() 以及为什么它在版本 5 中不起作用