我在wordpress中为表单和ajax制作了一个插件。当页面通过ajax成功加载内容时,我想在页面上使用联系人表单7。我使用do_shortcode()
标记为“联系人表单7常见问题解答”上的“解释”,但无法显示表单。下面是我正在执行的示例代码:
function.php
add_action( \'wp_enqueue_scripts\', \'ajax_test_enqueue_scripts\' );
function ajax_test_enqueue_scripts() {
wp_enqueue_script( \'season\', plugins_url( \'/form-submit.js\', __FILE__ ), array(\'jquery\'), \'1.0\', true );
wp_localize_script( \'season\', \'myAjax\', array(
\'ajax_url\' => admin_url( \'admin-ajax.php\' )
));
}
add_action(\'wp_ajax_confirmRequest\', \'_myConfirmHandler\');
add_action(\'wp_ajax_nopriv_confirmRequest\', \'_myConfirmHandler\');
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" filter="your-platno=\' . $vehicle_no . \'"]\');
echo do_shortcode(\'[contact-form-7 id="6871" title="season parking form_copy"]\');
}
exit;
}
jQuery
jQuery(document).ready(function($) {
$(\'#submit_payment\').click(function(e){
e.preventDefault();
var str = $("form[name=season-form]").serialize();
$.ajax({
type: "POST",
url: myAjax.ajax_url,
data: str + \'&action=confirmRequest\'
}).done(function(data){
$("#result").html(data);
});
});
});
它只会输出
[contact-form-7 id="6871" title="season parking form_copy"]
我也使用联系人表单DB,但它可以毫无问题地显示数据我需要吗
enqueue
联系人表单7的脚本。如果需要,怎么做