我在指定Ajax jQuery url路径时遇到了问题。我有一个函数包含所有Html标记代码,php sned邮件代码和Ajax jQuery代码如下
如何在ajax代码中指定url
属性?
信息我在我的插件目录
中使用了wordpress主题和此功能<?php
function bsncontact() {
//All php codes here
?>
<form id="ajax-contact" class="navbar-form" action="" method="POST">
<!-- other html markup codes -->
</form>
<script type="text/javascript">
jQuery(function(){
jQuery.ajax({
type: 'POST',
url: '',
data: "name=" + name + "&email=" + email + "&subject=" + subject + "&message=" + message,
success: function(text) {
}
});
});
</script>
<?php
}
?>
答案 0 :(得分:3)
正如你所说使用wordpress主题。在wordpress主题中,您可以非常轻松地在后端(管理面板)和主题前端的wordpress中注册ajax
首先您可以将ajax代码分开(例如将ajax代码放在myajax.js
文件中),然后将其放在js
文件夹中,并注册您的ajax代码(您在其中创建函数并注册这些脚本)和wordpress admin ajax使用wp_localize_scrip
function my_enqueue() {
wp_enqueue_script( 'ajax-script', plugins_url( '/js/myajax.js', __FILE__ ), array('jquery') );
wp_localize_script( 'ajax-script', 'ajax_object',array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'we_value' => 1234 ) );
}
add_action( 'admin_enqueue_scripts', 'my_enqueue' );
第二次将您的HTML
表单代码放在单独的函数中,例如
<?php
function myhtmlfunc() {
//Your html contact form here
//not important if form contain action="", you can remove it
}
?>
直到现在很容易。
第三次将您的php
已发送的邮件代码放在另一个函数中,并将Ajax放在Viewer-Facing Side上,用于僵尸程序记录和访问者用户abs
AJAX in Plugins
<?php
function myphpmail() {
//Put all php codes here
}
add_action( 'wp_ajax_my_action', 'myphpmail' );
add_action( 'wp_ajax_nopriv_my_action', 'myphpmail' );
?>
然后将ajax
网址设置如下
$.ajax({
type: 'POST',
url:ajax_object.ajaxurl,
success: function() {}
});
答案 1 :(得分:2)
在wordpress中你必须首先创建钩子。
要创建钩子,我们使用 add_action('wp_ajax_my_action','my_action_callback');
my_action_callback 是一个在调用“wp_ajax_my_action”动作时调用的函数。
我已更新您的代码 试试这个:
<?php
add_action( 'wp_bsncontact', 'bsncontact' );
function bsncontact() {
//All php codes here
?>
<form id="ajax-contact" class="navbar-form" action="" method="POST">
<!-- other html markup codes -->
</form>
<script type="text/javascript">
jQuery(function(){
jQuery.ajax({
type: 'POST',
url: 'http://abcd.com/wp-admin/admin-ajax.php',
data: "action=wp_bsncontact&name=" + name + "&email=" + email + "&subject=" + subject + "&message=" + message,
success: function(text) {
}
});
});
</script>
<?php
}
?>
要调用hook,您需要在ajax的数据中传递“action”,如上面的代码所示。
请根据您的要求修改此代码。
希望它对你有用。
答案 2 :(得分:0)
不确定你想要达到的目标,
尝试在ajax代码的网址中使用"<?php echo $_SERVER['PHP_SELF']; ?>"
。
PHP_SELF是一个返回正在执行的当前脚本的变量。