如果所有代码都在一个文件中,如何指定Ajax jquery url路径

我在指定Ajax jQuery url路径时遇到问题。 我有一个函数包含所有Html标记代码,php sned邮件代码和Ajax jQuery代码如下</ p>

如何在ajax代码中指定 url </ code>属性?</ p>

信息:</ strong>我在我的插件目录中使用wordpress主题和此功能</ p>

 &lt;?php 
function bsncontact(){

//这里的所有php代码
?&gt;
&lt; form id =“ajax-contact”class =“navbar-form”action =“”method =“POST”&gt; \ n&lt;! - 其他html标记代码 - &gt;
&lt; / form&gt;
&lt; script type =“text / javascript”&gt;
jQuery(function(){
jQuery.ajax({

类型:'POST',
url:'',
data:“name =”+ name +“&amp; email =”+ email +“&amp; subject =”+ subject +“&amp; message =” +消息,
成功:函数(文本){

}
});
});
&lt; / script&gt;
&lt;?php
}
?&gt;
< / code> </ pre>
</ div>

展开原文

原文

I have issue with specifying the Ajax jQuery url path. I have one function contains all Html markup codes, php sned mail codes and Ajax jQuery code as follow

How i can specify url property in ajax code?

Info: i use wordpress theme and this function within my plugin directory

<?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
}
?>

doucheng4094
doucheng4094 我有这个功能,我创建它发送电子邮件,它是完美的工作。当我在我的wordpress主题显示联系表格中的任何地方调用该功能并发送电子邮件没有任何问题,我添加ajax代码,直到发送电子邮件期间不刷新页面,但我不知道我如何指定网址属性
4 年多之前 回复
doumeng4400
doumeng4400 我不确定你要做什么。您是否尝试回发到为该页面提供服务的相同网址?
4 年多之前 回复

3个回答



如你所说使用wordpress主题。 在wordpress主题中,您可以非常轻松地在后端(管理面板)和主题前端的wordpress中注册ajax </ p>

首先</ strong>您可以将 单独的ajax代码(例如将ajax代码放在 myajax.js </ code>文件中),然后将其放在 js </ code>文件夹中,并注册你的ajax代码(你创建函数和 通过使用 wp_localize_scrip </ code> </ p>

  function my_enqueue(){
wp_enqueue_script('ajax-script)在你的主题中注册这些脚本)和wordpress admin ajax ',plugins_url('/ js / myajax.js',__ FILE__),array('jquery'));
wp_localize_script('ajax-script','ajax_object',array('ajax_url'=&gt; admin_url('admin) -ajax.php'),'we_value'=&gt; 1234));
}
add_action('admin_enqueue_scripts','my_enqueue');
</ code> </ pre>

< strong> Second </ strong>将 HTML </ code>表单代码放在单独的函数中,例如</ p>

 &lt;?php 
function myhtmlfunc (){
//你的html联系表格在这里
//如果表格包含action =“”则不重要,你可以将其删除
}
?&gt;
</ code> </ pre>

到现在为止非常容易。</ p>

第三次</ strong>将您的 php </ code>发送邮件代码放在另一个函数中,而Ajax放在Viewer上 -Facing Side for bot log and visitor users abs abs
AJAX in Plugins </ p>
\ n

 &lt;?php 
function myphpmail(){
//将所有php代码放在这里
}
add_action('wp_ajax_my_action','myphpmail');
add_action('wp_ajax_nopriv_my_action' ,'myphpmail');
?&gt;
</ code> </ pre>

第四,然后将 ajax </ code>网址设置如下</ p>
\ n

  $ .ajax({
type:'POST',
url:ajax_object.ajaxurl,
success:function(){}
});
</ code> </ pre>
</ div>

展开原文

原文

As you say use wordpress theme. In wordpress theme this is very easy you can register ajax within your wordpress in backend(admin panel) and in front end of your theme

First you may put your ajax code in separate (for example put ajax code within myajax.js file) and then put it within your js folder, and register the your ajax code (you create function and register these scripts within it) and wordpress admin ajax over your theme by using 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' );

Second put your HTML form code within separate function for example

<?php
    function myhtmlfunc() {
        //Your html contact form here
        //not important if form contain action="", you can remove it
    }
?>

Until now very easy.

Third put your php sent mail code within another function and Ajax on the Viewer-Facing Side for bot logged and visitor users abs below 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' );
?>

Fourth then set your ajax url as below

$.ajax({
    type: 'POST',
    url:ajax_object.ajaxurl,
    success: function() {}
});

dongxu0690
dongxu0690 谢谢你这是我的工作和完美的方式,因为我不能使用完整的网址
4 年多之前 回复
dongxi5494
dongxi5494 谢谢你我瘦了这是一个很好的方法
4 年多之前 回复



在wordpress中你必须首先创建钩子。</ p>

要创建钩子,我们使用 add_action('wp_ajax_my_action','my_action_callback'); </ strong> </ p>

my_action_callback </ strong>是一个在调用“wp_ajax_my_action”动作时调用的函数。</ p>

我已经更新了你的代码
试试这个:</ p>

 &lt;?php 
add_action('wp_bsncontact','bsncontact'); \ n function bsncontact(){
//这里的所有php代码
?&gt;
&lt; form id =“ajax-contact”class =“navbar-form”action =“”method =“POST”&gt; \ n&lt;! - 其他html标记代码 - &gt;
&lt; / form&gt;
&lt; script type =“text / javascript”&gt;
jQuery(function(){
jQuery.ajax({

键入:'POST',
url:'http://abcd.com/wp-admin/admin-ajax.php',
data:“action = wp_bsncontact&amp; name =”+ name +“&amp; 鄂麦 l =“+ email +”&amp; subject =“+ subject +”&amp; message =“+ message,
success:function(text){

}
});
});
&lt; / script&gt;
&lt;?php
}
?&gt;
</ code> </ pre>

要调用hook,您需要在您的数据中传递“action” ajax如上面的代码所示。</ p>

请根据您的要求修改此代码。 </ p>

希望它对您有用。</ p>
</ div>

展开原文

原文

In wordpress you have to create hook firstly.

To create hook we use add_action( 'wp_ajax_my_action', 'my_action_callback' );

my_action_callback is a function that will called when "wp_ajax_my_action" action is called.

I have updated your code Try this:

<?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
    }
    ?>

To call hook you need to pass "action" in data of your ajax as shown in above code.

Please modify this code as per your requirement.

Hope it will work for you.

dtml3340
dtml3340 这也适合我
4 年多之前 回复
dounianxie2058
dounianxie2058 谢谢你这是有帮助的方式,但我想不要把完整的URL,因为它不成功或好方法
4 年多之前 回复



不确定要实现的目标,</ p>

尝试使用“&lt; ?php echo $ _SERVER ['PHP_SELF'];?&gt;“</ code>在你的ajax代码的url中。</ p>

PHP_SELF是一个返回正在执行的当前脚本的变量。 </ p>
</ div>

展开原文

原文

Not really sure what you want to achieve,

Try using "<?php echo $_SERVER['PHP_SELF']; ?>" in the url of your ajax code.

PHP_SELF is a variable that returns the current script being executed.

dongxin8392
dongxin8392 不和我合作
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐