我是php和ajax的新手。我想知道是否可以将变量从一个ajax成功函数传递到另一个ajax数据字段。以下是两个ajax调用。
$("#submit_btn").on("click",function(e) {
$.ajax({
url: "./script.php",
type: 'POST',
data: {
name: $('#clientName').val(),
email: $('#clientEmail').val(),
question: $("#quiz").val()
}
}).done(function(data){
//alert(data);
//console.log(data);
});
});
在第一个成功函数返回clientName。现在我想通过第二个ajax调用在insert.php中发送这个clientName。第二个ajax调用如下:
$("#chat_send_btn").on("click",function(e) {
$.ajax({
url: "./insert.php",
type: 'POST',
data: {
textarea:$('#hidden_textarea').val(document.getElementById('text_area').innerHTML),
customerName: data
}
}).done(function(data){
$('html, div').animate({scrollTop: $('#chat_messages_area').height()+5000});
});
});
这是insert.php。没关系还是我做错了什么?
<?php
session_start();
require 'connect.php';
$uname ='';
$msg = '';
$tableName= "logs";
if(isset($_POST['textarea']) && isset($_POST['data']))
{
$msg = $_POST['textarea'];
$uname = $_POST['data'];
$sql_insertquery = "INSERT INTO `logs` (`msgID`, `username`, `msg`) VALUES (NULL, '$uname', '$msg');";
$sth = $conn->query($sql_insertquery);
$sql_selectquery = "SELECT * FROM logs";
}
else{echo "error";}
?>
答案 0 :(得分:1)
创建一个隐藏的输入/自定义属性,并在第一个ajax完成后保存名称,然后显示聊天,在第二个ajax调用中,您只需引用隐藏的输入/自定义属性值
答案 1 :(得分:0)
以下是两种方法:
在首次调用成功时设置隐藏html字段中所需的值,然后 在下一个Ajax调用中获取它
将值存储在您在其中设置的全局javascript变量中 首先是ajax调用然后在第二次调用中捕获
答案 2 :(得分:0)
最简单的方法是使用全局变量并将其值设置为成功值,然后在第二个ajax调用中使用它,如下所示:
var clientName = '';
$("#submit_btn").on("click",function(e) {
$.ajax({
url: "./script.php",
type: 'POST',
data: {
name: $('#clientName').val(),
email: $('#clientEmail').val(),
question: $("#quiz").val()
}
}).done(function(data){
//alert(data);
//console.log(data);
//Set the clientName data here
clientName = data.clientName;
});
});
现在在第二个ajax调用中使用此变量值:
//append the clientName data to be sent to second ajax in your data
$("#chat_send_btn").on("click",function(e) {
$.ajax({
url: "./insert.php",
type: 'POST',
data: {clientName : clientName}, //passed clientName data from first ajax call success
}).done(function(data){
$('html, div').animate({scrollTop:$('#chat_messages_area').height()+5000});
});
});
另一个解决方案是为“#chat_send_btn”按钮设置一个数据属性,其中包含来自第一个ajax调用的所需数据值,然后在第二个ajax调用中使用它:
//first ajax call success code
.done(function(data){
//alert(data);
//console.log(data);
//Set the clientName data here
$('#chat_send_btn').data('clientName', data.clientName);
});
然后使用$('#chat_send_btn').data('clientName')
;