【问题标题】:Wordpress with jquery add items to an array and post it for php带有 jquery 的 Wordpress 将项目添加到数组并将其发布到 php
【发布时间】:2016-07-10 20:28:18
【问题描述】:

我正在创建一个 wordpress 插件,它将获取所有学校并在排名框中选择其中的 3 个。所以我正在尝试使用 jquery 从一组复选框中获取所有 post_id,并将它们发布到我的 php 函数中。从我下面的代码中,我应该怎么做?

这是我的 HTML 和 PHP 代码:

<?php foreach ($all_schools as $data):?>            
<div class="rank_box">
    <div class="left">                                          
        <div class="checkbox">
            <label class="pull-left"><input type="checkbox" name="nationality" value="<?php echo $data->post_id; ?>"></label>
        </div>  
    </div>
    <div class="right">
        <p><?php 
                if(strlen($data->school_name) >= 30){
                    echo substr($data->school_name,0,30)."…";
                }else{
                    echo $data->school_name; 
                }
            ?><br>                  
        </p>
    </div>
</div>

<?php endforeach;?>

<div id="divnationality">   
</div>

还有我的 jquery:

$(document).ready(function(){
    $('input[name="nationality"]').click(function () {              
            getSelectedBoxes('nationality');
    });

    var getSelectedBoxes = function (groupName) {
        var result = $('input[name="' + groupName + '"]:checked');
        if (result.length > 0) {
            var resultString = result.length + " checkboxe(s) checked<br/>";
            result.each(function () {
                resultString += $(this).val() + "<br/>";
            });
            $('#div' + groupName).html(resultString);
        }
        else {
            $('#div' + groupName).html("No checkbox checked");
        }
    };
});

【问题讨论】:

    标签: jquery wordpress checkbox jquery-post


    【解决方案1】:

    .click 函数中,我会这样做:

    var is_checked = $(this).prop("checked");

    if (is_checked) ...

    $(this).val() 也应该得到输入值,不管它是否被选中。

    要将值数据发布到 PHP,请使用 $.ajax() (more info here),如下所示:

    var post_data = {};
    
    if (is_checked) {
        var value = $(this).val();
        post_data[value] = value;
    }
    
    $.ajax({
        url: 'YOUR_POST_URL',
        type: 'POST',
        data: post_data,
        error: function(jqXHR, textStatus, errorThrown) {
            alert(errorThrown);
        },
        success: function(data) {
    
        }
    });
    

    【讨论】:

    • 感谢您的快速回复@Matt...我将根据您的建议修改我的代码,但我想知道的是如何使用 jquery 将 post_ids 添加到数组中并发布它以便我可以使用我的 php 函数拉数组。
    • 谢谢马特。我让你的代码工作了。但是我仍然保留了我的 getSelectedBoxes 函数以备将来使用。所以我在函数(数据)中添加了警报(“成功”),我猜它现在可以工作了。我的最后一个问题是如何从我的 php 函数中提取发布的数据?
    • 应该可以使用$_POST
    猜你喜欢
    • 2016-12-02
    • 2021-11-06
    • 2017-03-04
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2011-03-22
    相关资源
    最近更新 更多