我在wordpress网站(PHP)中有一个要求,在选择下拉列表时,会显示两个单选按钮,根据所选的单选按钮,将提供选择下拉列表。
我到达了我可以使用单选按钮的阶段。我使用jQuery ON事件来识别选中哪个单选按钮并在javascript变量中具有相应的值。我试图使用ajax将这个JS变量传递给我的php。 ajax的成功属性工作正常,但$ _POST [' name']不显示该值。我试图在ajax的success属性中使用.html(),但这只是用javascript变量的值替换了我的div元素。我需要在我的PHP代码中使用这个JS变量值,以便我可以运行一个条件,根据该条件决定我需要在网站上显示哪个下拉列表。
我几天来一直在尝试解决方案,但无法找到解决方案。请求一些指导
编辑: 根据收到的建议 我尝试了以下更改。我看到输入类型中的值=隐藏元素,但前提是我在Chrome中使用Inspect。但是使用View Source并没有向我显示这些值。我错过了什么?有人可以给一些指导..
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();
}
}
单car.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") {
答案 0 :(得分:0)
我不确定这些是否会对你有所帮助,但我有2个想法。首先,你可能会得到单选按钮的值false。其次可能你应该写这样的数据。
data: { "selRegProd" : selRegProd },
答案 1 :(得分:0)
在WordPress中使用Ajax通常以下列方式完成:
1-您必须将您的ajax数据提交给admin-ajax.php。有时您可以使用WordPress为该URL预定义的全局js变量> //Denotes input in dev console
< //Denotes output
> var a={};
< undefined
> a
> Object {}
> a=a+1;
< "[object Object]1"
> a
< "[object Object]1"
> b=2
< 2
> a+b
< "[object Object]12"
。但更可靠的是,我会使用ajaxurl
的输出。
2-您的数据对象必须包含admin_url( 'admin-ajax.php' )
值,该值具有表示此ajax提交的唯一字符串。我将在action
AJAX_ACTION
3-使用包含您指定的操作名称的挂钩接收数据:
data = { action: 'AJAX_ACTION', your_var: 'your_val' };
4-使用您的add_action( 'wp_ajax_AJAX_ACTION', 'callback_function' );
add_action( 'wp_ajax_nopriv_AJAX_ACTION', 'callback_function' );
接收数据:
callback_function
顺便说一句,在function callback_function() {
// $_POST['your_var'] is accessible here
}
中使用echo
会导致响应被发送到success函数。
callback_function
用于提交没有WordPress帐户或未登录的访问者,而wp_ajax_nopriv_AJAX_ACTION
用于登录用户。
请检查:WordPress Codex