Javascript 在html输入字段中加载ajax值

Javascript 在html输入字段中加载ajax值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在index.php文件中有一个数据库中的内容课程标题下拉列表。我得到下拉选择的数据并将其发送到一个PHP文件。在使用接收到的课程标题的PHP文件中,我选择相关的课程开始日期和结束日期,并使用AJAX将它们发送到PHP文件 我有两个文本类型的输入标记,当用户单击课程标题时,我希望其值与开始日期和结束日期相关 当我在一个div中显示收到的开始日期和结束日期时,它显示得很好,但是当我想相对地设置输入标记的值Start_Date和End_Date时,它没有显示任何内容 我是ajax和jquery新手

我在index.php文件中有一个数据库中的内容课程标题下拉列表。我得到下拉选择的数据并将其发送到一个PHP文件。在使用接收到的课程标题的PHP文件中,我选择相关的课程开始日期和结束日期,并使用AJAX将它们发送到PHP文件

我有两个文本类型的输入标记,当用户单击课程标题时,我希望其值与开始日期和结束日期相关


当我在一个div中显示收到的开始日期和结束日期时,它显示得很好,但是当我想相对地设置输入标记的值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返回。请检查以下代码:

$document.readyfunction{ $'dropdownList'。在'change'上,函数{ var val1=$dropdownList选项:selected.val; $.ajax{ 键入:“POST”, url:'test.php', 数据:{text1:val1}, 数据类型:“json”, 成功:功能反应{ $'start_data'.valresponse.STARTDATETIME; $'end_date'.valresponse.ENDDATETIME; } }; };
};当我想设置输入标记的相对开始日期和结束日期的值时,它没有显示任何内容……您在代码中的什么地方这样做?我没有看到任何创建或填充任何输入标记的尝试。你试过了吗?如果是这样,请展示您的尝试,然后也许我们可以修复它。如果没有看到代码,就无法100%清楚地知道您想要做什么,或者问题出在哪里。谢谢当我想设置输入标签的相对开始日期和结束日期时,它没有显示任何内容。你能解释一下吗?对不起,我的英语很差。实际上,我想根据下拉选择Success:function response{$'start\u date'.valresponse;}动态获取文本字段中的内容。唯一的缺陷是设置$return\u array['status']=true;在两个不同的地方。仅仅因为在一个地方它是真实的,在另一个地方它是真实的。还有,这个变量的作用是什么?如果缺少任何值,调用代码都会很明显。否则,这是一个很好的方法。如果我们想在数据库中没有数据时在前端显示错误,则使用status。是的,但前端可以简单地检查日期字段是否为空。这不需要单独的状态。或者,服务器应该返回一个适当的HTTP错误状态代码,这是一个更加RESTful的解决方案。但无论如何,您的方法无法满足要求。例如,如果没有开始日期,但存在结束日期,则状态仍然为true,在相反的情况下相同,因此即使您要使用它,它也无法正确执行任务如果存在结束日期,则我们可以在结束日期输入中显示它,对吗?您可以根据需要更改响应,现在只需满足要求。是的,当然,但要求意味着在每种情况下都应该有两个日期。不管怎样,我们已经偏离了主题。这是我指出的一个次要问题。