Javascript 从jquery到PHP wordpress的变量

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(){ $(

我正在Wordpress中构建,我知道我需要使用AJAX,但不知道如何使用

我有一个下拉选择框,当用户选择一个选项时,会出现一个div

该div中的数据需要从自定义post中提取,因此我有一个php变量来实现这一点

我需要做的是,能够根据下拉列表的选择更改php变量

我可以在jQuery中这样做,但我不知道如何将jQuery变量传输到php

任何帮助都将不胜感激

$(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/页面中运行,这就是其中之一。。。。。