使用ajax从mysql DB检索和打印数据到文本框(如何在同一个php页面中使用它两次)

Posted

技术标签:

【中文标题】使用ajax从mysql DB检索和打印数据到文本框(如何在同一个php页面中使用它两次)【英文标题】:Retrieve and print data to textboxes from mysql DB using ajax (How to use it twice in the same php page) 【发布时间】:2021-01-06 10:31:40 【问题描述】:

使用 Ajax 从 mysql DB 检索数据并将数据打印到文本框(如何以相同的形式使用它两次。php) 而 MySQL 的两个表使用了相同的列 'name'

命名数据库表的位置:

guid       id        name

1          101       aaaa
2          102       bbbb

而 course_names 数据库表是:

id    course_id       name

1      win7         Windows 7
2      win8         Windows 8

code 1 form.PHP

<td></td>
<tr>
   <script type="text/javascript">
        function getname(val) 
             $.ajax(
                url: 'getinsdata.php',
                type: 'POST',
                data: 'prn='+val,
                dataType: 'json',
                success:function(data)
                    var len = data.length;
                    if(len > 0)
                        var id = data[0]['id'];
                        var name = data[0]['name'];

                        document.getElementById('name').value = name;  
                    
                
            );
        
    </script>
<td align="right">PRN</td>
<td><input type="text" id="prn" name="prn" tabindex="1" onblur="getname(this.value);" <?php if(isset($_GET['id'])) print('value="'.$row['prn'].'"'); ?> /><font color="Red">**</font></td>

<td align="right">Employee Name</td>
<td><input class="p7" id="name" type="text" name="name" tabindex="2" <?php if(isset($_GET['id'])) print('value="'.$row['name'].'"'); ?>Disabled /></td>
</tr>

getinsdata.php

include('config.php');
$id = $_POST['prn'];
$sql = "SELECT * FROM names WHERE id='$id'";

$result = mysqli_query($conn,$sql); 

$users_arr = array();

while( $row = mysqli_fetch_array($result) )
    $id = $row['id'];
    $name = $row['name'];
    $users_arr[] = array("id" => $id, "name" => $name);


// encoding array to json format
echo json_encode($users_arr);
exit;

第二个代码在同一个form.php

        <script type="text/javascript">
            function getname2(val2) 
                $.ajax(
                    url: 'getinsdata2.php',
                    type: 'POST',
                    data: 'course_guid='+val2,
                    dataType: 'json',
                    success:function(data)
                        var len = data.length;
                        if(len > 0)
                            var id = data[0]['id'];
                            var course_id = data[0]['course_id'];
                            var name2 = data[0]['name'];
                            document.getElementById('course_id').value = course_id;  
                            document.getElementById('name').value = name2;  
                        
                    
                );
            
        </script>
    <td align="right">Course ID</td>
    <td><input type="text" id="course_guid" name="course_guid" tabindex="3" onblur="getname2(this.value);" <?php if(isset($_GET['id'])) print('value="'.$row['course_guid'].'"'); ?> /><font color="Red">**</font></td>
    </tr>
    <tr>
    <td align="right">Course Adress</td>
    <td><input class="p7" id="course_id" type="text" name="course_Addr"   tabindex="4"   <?php if(isset($_GET['id'])) print('value="'.$row['course_Addr'].'"'); ?>Disabled /></td>
    </tr>
    <tr>
    <td align="right">Course name</td>
    <td><input class="p7" id='name' type="text" name="course_name"  tabindex="5" <?php if(isset($_GET['id'])) print('value="'.$row['course_name'].'"'); ?>Disabled /></td>
    </tr>

getinsdata2.php

<?php
    include('config.php');
    $id2 = $_POST['course_guid'];
    $sql2 = "SELECT * FROM courses_names WHERE id='$id2'";

    $result2 = mysqli_query($conn,$sql2); 

    $users_arr2 = array();

    while( $row2 = mysqli_fetch_array($result2) )
        $id2 = $row2['id'];
        $course_id = $row2['course_id'];
        $name2 = $row2['name'];
        $users_arr2[] = array("id" => $id2, "course_id" => $course_id, "name" => $name2);
    

    // encoding array to json format
    echo json_encode($users_arr2);
    exit;
?>

在这种情况下,php 在选择正确的数据时会感到困惑。

需要您的帮助。

【问题讨论】:

【参考方案1】:

作为我这边的解决方法,我做了以下操作

第二个代码在同一个form.php

        <script type="text/javascript">
            function getname2(val2) 
                $.ajax(
                    url: 'getinsdata2.php',
                    type: 'POST',
                    data: 'course_guid='+val2,
                    dataType: 'json',
                    success:function(data)
                        var len = data.length;
                        if(len > 0)
                            var id = data[0]['id'];
                            var course_id = data[0]['course_id'];
                            var name2 = data[0]['2'];
                            document.getElementById('course_id').value = course_id;  
                            document.getElementById('2').value = name2;  
                        
                    
                );
            
        </script>
    <td align="right">Course ID</td>
    <td><input type="text" id="course_guid" name="course_guid" tabindex="3" onblur="getname2(this.value);" <?php if(isset($_GET['id'])) print('value="'.$row['course_guid'].'"'); ?> /><font color="Red">**</font></td>
    </tr>
    <tr>
    <td align="right">Course Adress</td>
    <td><input class="p7" id="course_id" type="text" name="course_Addr"   tabindex="4"   <?php if(isset($_GET['id'])) print('value="'.$row['course_Addr'].'"'); ?>Disabled /></td>
    </tr>
    <tr>
    <td align="right">Course name</td>
    <td><input class="p7" id='2' type="text" name="course_name"  tabindex="5" <?php if(isset($_GET['id'])) print('value="'.$row['course_name'].'"'); ?>Disabled /></td>
    </tr>

getinsdata2.php

<?php
    include('config.php');
    $id2 = $_POST['course_guid'];
    $sql2 = "SELECT * FROM courses_names WHERE id='$id2'";

    $result2 = mysqli_query($conn,$sql2); 

    $users_arr2 = array();

    while( $row2 = mysqli_fetch_array($result2) )
        $id2 = $row2['id']; // column 0
        $course_id = $row2['course_id']; // column 1
        $name2 = $row2['2']; // where 2 is column name sequence in MySQL Table
        $users_arr2[] = array("id" => $id2, "course_id" => $course_id, "2" => $name2);
    

    // encoding array to json format
    echo json_encode($users_arr2);
    exit;
?>

结果

【讨论】:

以上是关于使用ajax从mysql DB检索和打印数据到文本框(如何在同一个php页面中使用它两次)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ajax 和 php 从 db 中检索数据?

jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?

使用 Jquery、AJAX 和 PHP 从 MySQL 数据库中检索数据

从mysql中检索图像并设置为pictureBox C#

在 codeigniter 中使用 AJAX 从视图调用控制器函数并从 db 检索行

从数据库中检索数据并将其发送到 laravel 中的 ajax