WordPress Ajax将数据发送到另一个弹出窗口

时间:2020-01-18 00:27:22

标签: php jquery ajax wordpress elementor

我一直在努力做到这一点,希望您能帮我弄清楚我要去哪里,我已经尝试了许多WordPress网站,而且它们似乎都指向插件。

我正在使用一个名为Elementor的插件来执行模式弹出窗口,在此弹出窗口中,我有一个简码。

P2.REQUEST?targetClient=1

当您单击以下访客之一时,将显示“弹出”框:https://www/weddly.app/table-planner

当用户单击删除用户时,将其带到/ form的模板文件中的php表单中,然后将其添加到数据库中,从表单中获取发布数据,这很完美。

对于“编辑来宾”链接,我想从表单中获取帖子值并通过Ajax发送并返回到同一页面,然后我将在该页面中将其收集在另一个弹出框中,以允许他们编辑用户他们选择的。

这是我试图提出的。

这是在我的functions.php中的主题:

function edit_guests()
{
    global $wpdb;
    $current_user = wp_get_current_user();
    $current_user = $current_user->user_login;

    echo '<form method="post" id="my_form">';
    echo '<span id="errfrmMsg" style="margin:0 auto;"></span>';
    echo '<select id="guests" name="guests">';


    $results = $wpdb->get_results( "SELECT * FROM wp_guest_list");
    if(!empty($results))                        
    {    
        foreach($results as $row)
        {
            if($row->username == $current_user )
            {
                echo '<option value="' . $row->name . '" selected="selected"> ' .$row->name . '</option>';
            }
        }
    }

    echo '</select>';
    echo'<input type="hidden" name="action" value="ajax_action_anyName" style="display: none; visibility: hidden; opacity: 0;">';
    echo '<div class="buttons" style="text-align:center; margin-top:20px;">'; ?>

    <button type="submit" formaction="<?php echo admin_url( 'admin-ajax.php' ); ?>" class ="edit-guest close-popup" onclick="" style="margin-right:20px;">Edit Guest</button> 
    <?php

    echo '<button id="submit" type="submit" formaction="/submit/?action=remove" class="" onclick="#">Remove Guest</button>';

    echo '</div>';
    echo '<div id="server-results"></div>';
    echo '</form>';
}

function show_edits()
{
  return edit_guests();
}

add_shortcode('weddly-edits', 'show_edits');

这是我的Ajax,似乎不起作用

// add actions
add_action( "wp_ajax_anyName", "ajax_action_anyName" );
add_action( "wp_ajax_nopriv_anyName", "ajax_action_anyName" );

function ajax_action_anyName()
{ 
  $form_element = sanitize_text_field( $_REQUEST['my_form'] );
  echo $form_element;
  wp_die();
}

add_action( 'wp_enqueue_scripts', 'my_form_scripts' );
function my_form_scripts() {
    if (is_page ('92')) { 
        wp_enqueue_script('my_file', get_template_directory_uri() . '/assets/js/editguest.js', array( 'jquery' ) );
        wp_localize_script( 'my_file', 'ajaxurl', admin_url( 'admin-ajax.php' ) );
    }
}

单击edit guest选项时,它将关闭当前弹出框并从Elementor中打开一个新的弹出框,这是我需要向其发送数据的框,而无需刷新页面,是否有更好的发送方法数据还是Ajax是最好的方法,什么是将表单中的帖子数据从表单弹出到第二个弹出窗口的最好方法。

好几天以来,我一直在绞尽脑汁想办法做到这一点,真心希望有人能帮忙。

谢谢

0 个答案:

没有答案