Use Shortcode on Custom Page

时间:2017-04-27 作者:Amran

如何在主题中的自定义页面上使用快捷码?假设我有一个具有jQuery ajax功能的页面。我可以通过JQuery post在my_form.php 页在confirm.php 第页,我想使用Contact Form DB插件中的一个短代码。下面是我写的源代码,

my_form.php

<?php
get_header(); 
// Include all the theme functions    
?>

<form name="season-form" class="form-horizontal" method="post" action="">
  <div class="form-group form-group-lg">
    <label for="carNo" id="label-cust"> Vehicle Registration No</label>
    <input type="text" class="form-control" name="vehicle_no" id="vehicle_no" placeholder="BHK1991">
  </div>
  <div class="form-group form-group-lg">
    <label for="email" id="email">Email</label>
    <input type="email" class="form-control" name="email" id="email" placeholder="[email protected]">
  </div>
  <button type="submit" class="btn btn-primary" id="submit_payment">Make Payment</button>
</form>
<div id="result"></div>

<?php get_footer(); ?>

my_function.js

jQuery(document).ready(function($) {
    $(\'#submit_payment\').click(function(e){
        e.preventDefault();
        var str = $("form[name=season-form]").serialize();
        //alert(str);
        $.ajax({
            type: "POST",
            url: url_to_confitm.php,
            data: str 
        }).done(function(data){
            $("#result").html(data);
        });
    });
});

confirm.php

if(isset($_POST[\'vehicle_no\'])){
    $vehicle_no = $_POST[\'vehicle_no\'];
    $email = $_POST[\'email\'];

    echo "Your Data: <br>$vehicle_no <br>$email<p />";
}

echo do_shortcode(\'[cfdb-table form="season parking form_copy"]\');
我能够获得post数据的结果,但短代码似乎没有返回任何内容my_form.php 第页,它完美地显示了数据

1 个回复
最合适的回答,由SO网友:BlueSuiter 整理而成

您应该以这种方式来处理ajax请求。这是recommended way to make a ajax call in WordPress.

my_function.js更新您的jquery 使用此代码。

jQuery(document).ready(function($) {
    $(\'#submit_payment\').click(function(e){
        e.preventDefault();
        var str = $("form[name=season-form]").serialize();
        //alert(str);
        $.ajax({
            type: "POST",
            url: \'//www.example.com/wp-admin/admin-ajax.php\',
            data: str + \'&action=confirmRequest\' 
        }).done(function(data){
            $("#result").html(data);
        });
    });
});
ajax_request_handling将此粘贴到functions.php 你的主题。

function _myConfirmHandler()
{
    if(isset($_POST[\'vehicle_no\']))
    {
        $vehicle_no = $_POST[\'vehicle_no\'];
        $email = $_POST[\'email\'];

        echo "Your Data: <br>$vehicle_no <br>$email<p />";

    }
    echo do_shortcode(\'[cfdb-table form="season parking form_copy"]\');
    echo do_shortcode(\'[contact-form-7 id="23" title="Contact form 1"]\');
    exit;
}

add_action(\'wp_ajax_confirmRequest\', \'_myConfirmHandler\');
add_action(\'wp_ajax_nopriv_confirmRequest\', \'_myConfirmHandler\');

For more information refer to the link.

相关推荐

无法使用AJAX访问数据库中的数据

我正试图在wordpress中首次调用AJAX。我遵循了一些教程,到目前为止已经达到了这一点。但当我试图安慰的时候。将从数据库中获取的数据记录在AJAX调用中,我发现以下错误:未捕获引用错误:未定义数据代码:功能。phpfunction my_ajax_handler(){ global $wpdb; $name = $wpdb->get_results(\"SELECT * FROM username\"); echo $name;