如何在主题中的自定义页面上使用快捷码?假设我有一个具有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="myMail@example.com">
</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
第页,它完美地显示了数据
最合适的回答,由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.