首页 > 解决方案 > 在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);

标签: javascriptphpjqueryajax

解决方案


您必须从 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;
?>

推荐阅读