通过ajax调用从php文件中接收多个值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过ajax调用从php文件中接收多个值相关的知识,希望对你有一定的参考价值。
下面是我的ajax调用代码。我想通过ajax调用在.php文件中发送一个数据,并希望从.php文件中获取两个值。这两个值我想在不同的'input'标签中设置,其id为'course_name'和'course_credit'。
这里我的ajax调用返回'course_name'输入标记的正确值(来自DB表的实际值)。 但'我的问题是'输入标签的值,其id为'course_credit'显示'成功'。如何获取id' course_credit'的正确值(来自DB表的实际值)?
我有一个'select'标签,其ID为'c_select'
html:
<input type="text" name="course_name" id="course_name" value=""/>
<input type="text" name="course_credit" id="course_credit" value=""/>
AJAX:
$('#c_select').change(function(){
$.ajax({
type:'post',
url:'get_course_info_db.php',
data: 'c_id='+ $(this).val(),
success: function(reply_data1,reply_data2){
$('#course_name').val(reply_data1);
$('#course_credit').val(reply_data2);
}
});
});
get_course_info_db.php
<?php
include('db_connection.php');
$c_id = $_POST['c_id'];
$result = mysql_query("SELECT * FROM course WHERE c_id = '$c_id'");
$all_course_data = mysql_fetch_array($result);
$c_name = $all_course_data['c_name'];
$c_credit = $all_course_data['c_credit'];
echo $c_name,$c_credit;
exit();
?>
AJAX代码: -
$('#c_select').change(function(){
$.ajax({
type:'post',
url:'get_course_info_db.php',
data: 'c_id='+ $(this).val(),
success: function(value){
var data = value.split(",");
$('#course_name').val(data[0]);
$('#course_credit').val(data[1]);
}
});
});
PHP代码: -
<?php
include('db_connection.php');
$c_id = $_POST['c_id'];
$result = mysql_query("SELECT * FROM course WHERE c_id = '$c_id'");
$all_course_data = mysql_fetch_array($result);
$c_name = $all_course_data['c_name'];
$c_credit = $all_course_data['c_credit'];
echo $c_name.",".$c_credit;
exit();
?>
成功回调是Function(PlainObject数据,String textStatus,jqXHR jqXHR); http://api.jquery.com/jQuery.ajax/
PHP:
$data = array(
'name' => $c_name,
'credit' => $c_credit,
);
echo json_encode($data);
success: function(data) {
var result = $.parseJSON(data);
$('#course_name').val(result.name);
$('#course_credit').val(result.credit);
}
success: function(reply_data1,reply_data2){
$('#course_name').val(reply_data1);
$('#course_credit').val(reply_data2);
}
第二个参数是http请求的状态,你必须编码答案,我建议你在你的PHP中使用JSON
$c_credit = $all_course_data['c_credit'];
echo json_encode(array('name' => $c_name,'credit' => $c_credit));
exit();
并在您的JavaScript中
success: function(response,status){
var datas = JSON.parse(response);
$('#course_name').val(datas.name);
$('#course_credit').val(data.credit);
}
这没有经过测试,但这是实现它的方法
我建议使用JSON来编码从数据库中获取的数据。
尝试更改您的ajax调用,如下所示:
$('#c_select').change(function(){
$.ajax({
type:'post',
url:'get_course_info_db.php',
data: 'c_id='+ $(this).val(),
dataType: 'json', // jQuery will expect JSON and decode it for you
success: function(reply_data){
$('#course_name').val(reply_data['c_name']);
$('#course_credit').val(reply_data['c_credit']);
}
});
});
你的PHP如下:
include('db_connection.php');
// Escape your input to prevent SQL injection!
$c_id = mysql_real_escape_string($_POST['c_id']);
$result = mysql_query("SELECT * FROM course WHERE c_id = '$c_id'");
$all_course_data = mysql_fetch_array($result);
echo json_encode($all_course_data);
exit();
我没有对此进行测试,但我认为它对你有用。
以上是关于通过ajax调用从php文件中接收多个值的主要内容,如果未能解决你的问题,请参考以下文章
PHP 如何从 AJAX 调用中发布多个数组/json 值并在同一个 SQL 查询中运行它们?
通过 for 循环和 php 数组进行多次插入(通过 jQuery AJAX 接收)