我在wordpress中使用ajax,我想展示用户输入的内容, 成功将ajax发送到服务器,但是POST数组出现问题 我的index.php中有一个不确定的索引,为什么它不起作用?
inc / send.php
<?php
add_action( 'wp_ajax_applican', 'applican');
add_action( 'wp_ajax_nopriv_applican', 'applican');
function applican(){
$v3 = $_POST['v3'];
};
?>
/js/custom.js
let arr = [];
btnNext.on('click', () => {
if(roomsRadio.is(':checked')) {
calc.slick('slickNext');
arr['version1'] = $('.rooms input[type="radio"]:checked').val();
console.log(arr['version1'])
}
if(versionRadio.is(':checked')) {
calc.slick('slickNext');
arr['version2'] = strip_html_tags($('.version input[type="radio"]:checked').val());
console.log(arr['version2'])
}
if(typeRadio.is(':checked')) {
calc.slick('slickNext');
arr['version3'] = strip_html_tags($('.type input[type="radio"]:checked').val());
console.log(arr['version3'])
$.ajax({
type: "POST",
dataType:'json',
url: "/wp-admin/admin-ajax.php",
data: {"action": "applican", "v3": arr['version3'], "v2": arr['version2'], "v1": arr['version1']},
success: function(msg) {
alert( "Data Saved: " + msg );
},
error: function () {
console.log({"v3": arr['version3']});
}
})
}
index.php
<?php applican(); echo $v3; ?>
答案 0 :(得分:1)
就像Magnus所说的那样,PHP中的变量具有不同的作用域Variable scope,您不能超出范围。在您的代码中,只能在函数$v3
中访问applican()
,而不能访问index.php
。您可以使用关键字global
扩展变量的范围:
<?php # inc/send.php
function applican(){
global $v3;
$v3 = $_POST['v3'];
};
或其他解决方案,例如:
<?php # inc/send.php
function applican(){
return $_POST['v3'];
};
<?php # index.php
$v3 = applican(); echo $v3;