Javascript 从jquery到PHP wordpress的变量
我正在Wordpress中构建,我知道我需要使用AJAX,但不知道如何使用 我有一个下拉选择框,当用户选择一个选项时,会出现一个div 该div中的数据需要从自定义post中提取,因此我有一个php变量来实现这一点 我需要做的是,能够根据下拉列表的选择更改php变量 我可以在jQuery中这样做,但我不知道如何将jQuery变量传输到php 任何帮助都将不胜感激Javascript 从jquery到PHP wordpress的变量,javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,我正在Wordpress中构建,我知道我需要使用AJAX,但不知道如何使用 我有一个下拉选择框,当用户选择一个选项时,会出现一个div 该div中的数据需要从自定义post中提取,因此我有一个php变量来实现这一点 我需要做的是,能够根据下拉列表的选择更改php变量 我可以在jQuery中这样做,但我不知道如何将jQuery变量传输到php 任何帮助都将不胜感激 $(document).ready(function(){ $('select').change(function(){ $(
$(document).ready(function(){
$('select').change(function(){
$( 'select option:selected').each(function(){
if($(this).attr('value')=='choose'){
hide_visible();
}
var val = $('#course_select option:selected').val();
var course_id;
if (val == 'CPR'){
course_id = 106; <!-- I need to send this to php -->
$( '#course_id' ).val(course_id);
};
if($(this).attr('value') == val){
if ($( '.course-info ' ).is(':visible')) {
$( '.course-info' ).slideUp( 'slow' ).delay(700);
$( '.iframe' ).slideUp( 'slow' );
$( '.form' ).slideUp( 'slow' );
$( '.'+ val ).slideDown( 'slow' );
}else{
$('.iframe').slideUp( 'slow' );
$( '.course-info' ).slideUp( 'slow' );
$( '.'+ val ).slideDown( 'slow' );
};
}
});
}).change();
}) 您不需要PHP变量 在下拉列表的更改事件中,获取所选的值,然后构建ajax查询并将其发送到服务器 签出jQuery的以下功能:ajax、change、val、html、show
您还需要为jQuery设置一个端点来请求数据。差不多。这是wordpress的任务,即PHP。此端点/脚本应返回包含div内容的JSON编码对象。从编辑的问题中,您可以执行以下操作:
$('.result-element').load('my-page.php?courseid=' + courseId);
查看api.jquery.com/load,了解使用jquery.load的更多信息
您的my-page.php可以从$_get['courseid']获取courseid,您只需将原始HTML作为一个部分进行回显,jQuery将自动将其添加到“.result元素”元素。如果您也使用jQuery,这可能会对您有帮助。干杯们:
$(document).ready(function(){
$('select').change(function(){
$( 'select option:selected').each(function()
{
if($(this).attr('value')=='choose')
{
hide_visible();
}
var val = $('#course_select option:selected').val();
var course_id;
if (val == 'CPR')
{
course_id = 106; // Sample code where you can send your jquery variable to php page
$.post("send_variable.php", {id:val}, function(data){
alert(data) //shouts the data from send_variable.php page
$("#hiddenTextbox").val(data); //this passes the value from send_variable.php to a textbox with Id(hiddenTextbox) into the page
});
$( '#course_id' ).val(course_id);
}
if($(this).attr('value') == val)
{
if ($( '.course-info ' ).is(':visible'))
{
$( '.course-info' ).slideUp( 'slow' ).delay(700);
$( '.iframe' ).slideUp( 'slow' );
$( '.form' ).slideUp( 'slow' );
$( '.'+ val ).slideDown( 'slow' );
}
else
{
$('.iframe').slideUp( 'slow' );
$( '.course-info' ).slideUp( 'slow' );
$( '.'+ val ).slideDown( 'slow' );
}
}
}
});
}).change();
下面是send_variable.php的代码
<?php
$val1 = $_POST['id'];
echo $val1; //thus returning the data that depends on your selected from dropdown
?>
希望这有帮助:我们能看一些代码示例吗?很难准确地理解您在这里想要实现什么…为什么不根据下拉列表从服务器请求内容?如果菜单选择数量有限,为什么不预先填充所有div并使用javascript/jQuery显示与当前选择相关的内容?如果您不想弄乱AJAX,可能需要构建一个后端脚本来使用它,那么这是一种更直接的方法。@Scopey的想法是,除了内容之外,其他都可以使用。如果您从下拉列表中选择过敏反应,它将显示它与内容的显示方式@MikeBrant我已经考虑过了,但是有很多选择,模板将被应用到几个不同的部分。谢谢你的帮助,我想我现在只是去lofi,完成工作,然后可能在以后的某个时候重新审视我的宏伟计划。嘿,伙计,谢谢你的回复。在wordpress中,我应该将send_variable.php放在哪里?我该如何将var返回到我的页面中使用呢?不幸的是,我对制作任何wordpress都不熟悉。有没有办法在那里再添加一个页面?如果是这样,那么您只需复制send_variable.php中的代码即可。只需创建一个隐藏的文本框,就可以恢复var。请参阅上面更新的代码。通过wordpress创建页面不会生成任何新文件。。。。php或其他。它只是存储在数据库中的信息。为了能够在页面中运行php,您有两个选项。你可以按照我上面链接的指导制作一个新的页面模板。将其命名为mynews.php,并将其分配到您的新闻页面。新模板可以是page.php的一个精确副本,带有适当的标题,并且您的代码来自原始的post INSERTED如果您不想走这条路,那么有一些插件允许php代码直接在post/页面中运行,这就是其中之一。。。。。