我有三个文件。我的主要php文件,functions.php,然后是我的js文件。
如何将这个php变量传递给js?这是我的主要PHP文件的代码
function ccss_show_tag_recipes() {
global $post;
global $wp;
$html = '';
$url = home_url( $wp->request );
$path = parse_url($url, PHP_URL_PATH);
$pathFragments = explode('/', $path);
$currentPage = end($pathFragments); //I WANT TO PASS THIS TO MY JS FILE
$term_tags = get_terms('cp_recipe_tags');
$term_cats = get_terms('cp_recipe_category');
$recipetype = array();
$recipecat = array();
foreach($term_tags as $term) {
$recipetype[] = $term->slug;
}
foreach($term_cats as $term) {
$recipecat[] = $term->slug;
}
if ( in_array( $currentPage , $recipecat ) ) {
$html = ccss_load_phases($html,$currentPage);
}
}
这是css_load_phases()的函数;
function ccss_load_phases($html = '',$currentPage){
//CODE HERE etc
$html .= '<div id="btn-wrapper-'.$termid.'" class="btn-wrapper"><a id="'.$termid.'" class="load-more-btn" href="#">Load more recipes</a></div>';
}
上面的代码是触发Ajax调用的,我所能获得的只是按钮ID。
这是AJAX文件代码:
(function($) {
$(document).on( 'click', 'a.load-more-btn', function( event ) {
var a = $(this).attr('id'); // I CAN ONLY GET THE ID SINCE IT WAS TRIGGERED BY BUTTON CLICK, how to include $currentPage?
var button = $(this),
data = {
'action': 'ajax_loadmore',
'termID': a
};
event.preventDefault();
$.ajax({
url: ajaxloadmore.ajaxurl,
data: data,
type: 'post',
beforeSend : function () {
button.text('Loading...'); // change the button text, you can also add a preloader image
},
success: function( result ) {
//console.log(data.post_gallery_imgs);
$('#cooked-recipe-list-'+a+' ').append(result).fadeIn();
c
//alert( result );
},
complete: function() {
button.remove(); // if no data, remove the button as well
//$('body').find('a#'+a+'').remove();
}
})
})
})(jQuery);
如何将$ currentPage php变量传递给我的Ajax / Js文件?所以我可以在这里使用它:
add_action( 'wp_ajax_nopriv_ajax_loadmore', 'my_ajax_loadmore' );
add_action( 'wp_ajax_ajax_loadmore', 'my_ajax_loadmore' );
function my_ajax_loadmore() {
$termID = $_POST['termID']; //ONLY THE BUTTON ID WAS RETRIEVED
}
javascript大神给出的解决方案
在函数ccss_load_phases中,包含一个隐藏的输入。
function ccss_load_phases($html = '',$currentPage){
$html .= '<div id="btn-wrapper-'.$termid.'" class="btn-wrapper">
<a id="'.$termid.'" class="load-more-btn" href="#">Load more recipes</a>
<input type="hidden" id="currentPage" value="'.$currentPage.'" />
</div>';
}
现在,您应该可以通过引用以下代码在JavaScript中进行访问:
$('#currentPage').val();
还是value();
我正在使用onclick事件从PHP调用JS函数。这是我的代码:我在一个函数中,因此我需要通过PHP来完成它,因为然后我会返回:$html = '<input type="checkbox" checked value="1" id="setGetSku" name="se…
ajax正在加载页面以返回POST请求 - javascript当我通过ajax发出“ POST”请求时,返回请求时页面正在加载。我们不使用ajax阻止整个页面重新加载吗?这是我的html代码:<form method="post"> <div align="center" class="col-md-10"> <input typ…
如何防止SQL使用单引号字符存储转义字符 - javascript我需要存储在开头和结尾都带有单引号的文本字符串。我正在从PHP发布JavaScript命令。我将引号添加到这样的字符串中:echo '<script type="text/javascript">'; echo 'function GetCodes() {'; echo 'va…
提交初始化后删除某些帖子数据 - javascript在初始化提交之后但在将数据发送到处理页面之前,是否可以过滤$ _POST表单数据?我想象过程的方式:提交->收集$ _POST数据->发送数据我想做的事:提交->收集$ _POST数据->删除某些元素->发送数据这样就不必更改处理页面以过滤掉不希望接收的元素了吗? javascript大神给出的解决方案 当然可以,您可以在JS …
Ajax功能后没有数据传递到URL - javascript这是我使用Ajax将参数传递到另一个PHP页面的脚本。 $(document).on( "click",".btndriver", function() { var id = $(this).attr("id"); var nombre = $(this).attr("nombre…