如何将PHP Ajax请求的成功返回值存入$class变量?
问题:如何将Ajax返回值存入变量$class
前端PHP页面的JS代码
$('.routine-of-classes ul.nav li button').click(function(){ $.ajax({ url: 'ajax.php', type: 'POST', data: { className : $(this).attr("className") }, success: function(data){ $('.get-class-id').text(data); } }); });
Ajax处理文件(ajax.php)
if(isset($_POST['className'])){ $getSubId = $_REQUEST['className']; echo $getSubId; }
当前Ajax请求成功后会将返回值渲染到页面元素,我希望将该返回值存入名为$class的变量,请问需要如何操作?
解决方案
根据变量的使用范围,有两种实现方式:
1. 局部变量(仅在success回调内使用)
直接在success函数内部声明并赋值,这个变量只能在回调函数里访问:
success: function(data){ $('.get-class-id').text(data); // 声明局部变量$class并赋值 let $class = data; // 此处可对$class进行后续操作 }
2. 全局变量(可在其他函数/作用域访问)
先在回调函数外部的全局作用域声明变量,再在success回调里给它赋值:
// 在全局作用域声明变量 let $class; $('.routine-of-classes ul.nav li button').click(function(){ $.ajax({ url: 'ajax.php', type: 'POST', data: { className : $(this).attr("className") }, success: function(data){ $('.get-class-id').text(data); // 给全局变量赋值 $class = data; } }); });
注意:不推荐用
var隐式声明全局变量(会造成全局变量污染),优先使用let或const明确声明作用域。
内容的提问来源于stack exchange,提问作者Yeasin Arafat
相关产品推荐
相关产品推荐

