使用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页面中使用它两次)的主要内容,如果未能解决你的问题,请参考以下文章
jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?
使用 Jquery、AJAX 和 PHP 从 MySQL 数据库中检索数据