Javascript没有显示所需的值

时间:2018-05-31 06:05:57

标签: javascript json wordpress custom-fields

我正在尝试使用自定义字段操作重力表单,以根据使用JSON和JavaScript的状态在我的表单中显示商店(以及向隐藏字段分配电子邮件)。。代码适用于其他网站,但不是当我在表单中选择状态时产生任何结果。请帮我解决这个问题。

我尝试寻找类似的答案,但我没有运气(我也是新人,所以我对JSON不太熟悉)。

如果我发布问题的方式是正确的还是需要进行编辑,请告诉我?

PHP代码:

add_action('wp_ajax_state_list_book_appointment','state_list_book_appointment');
add_action('wp_ajax_nopriv_state_list_book_appointment','state_list_book_appointment');
function state_list_book_appointment()
{

    $states = get_field('state_options', 'option');

    $output = [];
    foreach ($states as $state) {
        if ($state['booking_Appointment']) {
             $output[] = [
            'state_name' => $state['store'] . ' (' . $state['state'] . ')',
            'state_email' => $state['store_email']
        ];
        }
    }
    echo json_encode($output);
    die();
}

JAVASCRIPT:

$(document).ready(function() {
    if ($('#input_1_4').length > 0) {

        var store_lists_book_appointment;
        $('#input_1_4').on('change', function () {
                current_state = $(this).val();
                output = '';

                state_string = '(' + current_state + ')';
                console.log(state_string);
                $("#input_1_6").val($("#input_1_6 option:first").val());
                $.each($('#input_1_6 option'), function (idx, val) {
                    // assume state is in option format of ([state])
                    idx_of_state = $(val).val().indexOf(state_string);
                    if (idx == 0 || idx_of_state > 0) {
                        $(val).show();
                    } else {
                        $(val).hide();
                    }
                });
            });

        $.ajax({
            type:"GET",
            url: my_ajax_object.ajaxurl,
            data:{action: 'state_list_book_appointment'},
            beforeSend: function(){
                $('#catvalue').html('<i class="fa fa-spinner fa-1x" style="color:#000;text-align:center;"></i>');
            },
                    dataType: 'json',
                success: function (data) {
                    //console.log (data);
                    store_lists = JSON.parse(data);
                    //console.log(store_lists);
                    //store_lists_women = JSON.parse(data).women;
                    output = '<option>-- Please select --</option>';
                    $.each(store_lists, function (index, value) {
                        output += '<option style="display:none" value="' + value.state_name + '" data-email="' + value.state_email + '">' + value.state_name + '</option>';
                    });
                    $('#input_1_6').html(output);

                }
            });




            $('#input_1_6').on('change', function () {
                selected_email = $('#input_1_6 option:selected').data('email');
                $('#input_1_10').val(selected_email);
            });


        // This function is to prevent Chrome frontend validation. It stop working actual submit function of the form
        $('#gform_submit_button_1').on('click', function(){
            $('#gform_1').submit();
        });
    }

});

0 个答案:

没有答案