无法使用AJAX将JS变量获取到PHP
Not able to get JS variable to PHP using AJAX
我在wordpress网站(PHP)中有一个要求,在选择下拉菜单时,会显示两个单选按钮,并且根据所选的单选按钮,会提供一个选择下拉菜单。
我已经到了可以使用收音机按钮的阶段。我使用jQueryON事件来确定选中了哪个单选按钮,并在javascript变量中具有相应的值。我正试图使用ajax将这个JS变量传递给我的php。ajax的成功属性工作正常,但$_POST['name']没有显示值。我试图在ajax的success属性中使用.html(),但这只是用javascript变量的值替换了我的div元素。我在PHP代码中需要这个JS变量值,这样我就可以运行一个条件,根据这个条件我可以决定我需要在网站上显示哪个下拉列表。
几天以来,我一直在尝试一个解决方案,但没能找到解决方案。请求一些指导
编辑:根据收到的建议我尝试了以下更改。我在我的输入类型=隐藏元素中看到值,但前提是我在Chrome中使用Inspect。但是,使用"查看源代码"不会显示这些值。。我错过了什么?有人能给我一些指导吗。。
Ajx-script.js
$.ajax({
type : "POST",
url : myAjaxData.ajaxurl,
data : {
action : "sProdOrRegion_ajax_action",
selectedProdReg : selectedProdReg
},
success : function(data) {
$("#radioValueHidd1").val(selectedProdReg);
// $('#stakeholderParentData').load( urlValue + " " +"#stakeholderData");
//$("input[id=radioValueHidd3][value="+ selectedProdReg +"]").html();
$("input[id=radioValueHidd2]").val(selectedProdReg);
}
});
functions.php
add_action('wp_enqueue_scripts', function() {
wp_enqueue_script('my-ajax', get_template_directory_uri() . '/library/js/ajx-script.js', array('jquery') );
wp_localize_script(
'my-ajax',
'myAjaxData',
array( 'ajaxurl' => admin_url('admin-ajax.php') )
);
});
add_action( 'wp_ajax_singleIdeaProdOrRegion_ajax_action', 'callback_singleIdeaProdOrRegion' );
add_action('wp_ajax_singleIdeaProdOrRegion_ajax_action', 'callback_singleIdeaProdOrRegion');
function callback_singleIdeaProdOrRegion() {
if(isset($_POST['selectedProdReg'])) {
$selectedProdReg = $_POST['selectedProdReg'];
$selectedProdReg1 = $_POST['selectedProdReg'];
die();
}
}
单车.php
<div id="stakeholderParentData" class="stakeholderParentData">
<div id="stakeholderData" class="stakeholderData">
<?php $selectedProdReg = $wpdb->escape($_POST['selectedProdReg']); ?>
<?php
if (isset ( $selProdReg )) {
if ($selProdReg === "custom_post_prod_company") {
在WordPress中使用Ajax通常通过以下方式完成:
1-你必须将ajax数据提交给admin-ajax.php。有时你可以使用WordPress为该URL预定义的全局js变量ajaxurl
。但更可靠的是,我会使用admin_url( 'admin-ajax.php' )
的输出。
2-您的数据对象必须包含一个action
值,该值具有一个唯一的字符串来表示此ajax提交。我将在此处使用AJAX_ACTION
:data = { action: 'AJAX_ACTION', your_var: 'your_val' };
3-通过使用包含您指定的动作名称的钩子接收数据:
add_action( 'wp_ajax_AJAX_ACTION', 'callback_function' );
add_action( 'wp_ajax_nopriv_AJAX_ACTION', 'callback_function' );
4-使用callback_function
接收数据:
function callback_function() {
// $_POST['your_var'] is accessible here
}
顺便说一句,在callback_function
中使用echo
将导致将响应发送到成功函数。
wp_ajax_nopriv_AJAX_ACTION
是为没有WordPress帐户或未登录的访问者提交的,而wp_ajax_AJAX_ACTION
是为登录用户提交的。
请检查:WordPress Codex
我不确定这些是否会对你有所帮助,但我有两个想法。首先,您可能会得到单选按钮的值false。第二,也许你应该这样写你的数据。
data: { "selRegProd" : selRegProd },
- 从javascript变量获取php会话
- 是否将Javascript变量保存为PHP变量?获取、发布、COOKIE
- 从动态变量获取数组
- PHP 和 Javascript:使用 Javascript 变量获取文件内容
- 如何从 php 变量获取值到我们的 javascript 文件中
- 从 javascript 变量获取 InnerHtml
- 如何使用此变量获取 typeahead.js 中输入的 id
- 使用参数变量获取传递给 ES6 箭头函数的参数
- 如何将此值作为变量获取
- Javascript-使用一个变量获取数组的一部分
- 无法使用AJAX将JS变量获取到PHP
- 从angularjs中的变量获取数据
- 使用jquery中的变量获取字段值
- 将变量获取到url并导航选定的变量
- 将Struts2 valuestack变量获取到JQuery
- Javascript-使用变量获取对象值
- 为每个变量获取一个新的随机数
- 从JavaScript中的第二个变量获取名为的变量的值
- 使用变量获取 JavaScript 值
- HTML选择列表-通过传递变量获取文本值