如何在函数内部触发 $.post?

Posted

技术标签:

【中文标题】如何在函数内部触发 $.post?【英文标题】:How to fire $.post when inside function? 【发布时间】:2021-12-02 17:46:35 【问题描述】:

我想触发 Jquery 在不同的文件中执行 php 代码。但是我找不到让 Jquery 命令执行的方法。

我正在使用 wordpress。

我在functions.php中的代码

add_action( 'wp_footer', 'mycustom_wp_footer' );    //adding funtion for each form buttom to fire when pressed

    function mycustom_wp_footer()      //function form each form button to fire when button pressed
        ?>
        <script type="text/javascript">
            var wpcf7Elm = document.querySelectorAll( '.wpcf7' );
            wpcf7Elm.forEach(function(formr)
            formr.addEventListener( 'wpcf7submit', function( event ) 
                    //if ('wpcf7-f101-p97-o1' == event.detail.unitTag)     //when button inside form with this unitTag is pressed do code bellow

                        var gen3_name = "25";
                        //tis code is not working
                        $(document).ready(function()   //adding ajax, Jquery to send data to .php file for php function to execute
                            $.post("gen3.php", name: gen3_name);
                        );
                    //tis code is not working
             
                    var idform = event.detail.unitTag;
                    alert (idform);
            , false ); )
        </script>

我在 gen3.php 中的代码

global $wpdb;

if (isset($_POST['name'])) 

    $name = $_POST['name'];
    
    if ($name == "25") 

        $wpdb->update('Gen3', array('tvalue' => 1,), array('id' => 25), array('%d'), array('%d'));

    

【问题讨论】:

在那个地方使用$(document).ready 没什么意义。此代码仅在wpcf7submit 事件触发时运行,并且此时文档的就绪事件已经过去了。只需致电$.post,无需将其包装到准备好的文档中。 感谢您的回复。可悲的是,它不起作用:( 【参考方案1】:

你能告诉我你的控制台得到了什么输出吗?有任何错误或警告吗? 我认为您的代码将在附加 JQuery 文件之前放置。将钩子的优先级设置为高数字,表示低优先级,它将在附加jquery后放置。

add_action( 'wp_footer', 'mycustom_wp_footer', 0, 999999 );

另外由于加载了 JQuery NoConflict 或其他一些插件,您可能需要使用 JQuery.method() 而不是 $.method。

【讨论】:

您好,感谢您的回复。我尝试了你所有的建议。控制台输出是: _ ** "Uncaught SyntaxError: missing )" ** _ 在参数列表之后。这很奇怪,因为我多次检查了我的代码。此外,当我查看错误所在的位置时,似乎脚本没有更新并且仍然很旧。即使服务器文件已更新。 你检查过其他插件和依赖吗?因为错误可能与另一个插件有关。否则,它没有任何意义。 好像是这样。但是当我点击错误时,它会显示这一行: $.post("gen3.php", name: gen3_name); (根据wordpress,问题就在这里)

以上是关于如何在函数内部触发 $.post?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Azure 函数内部发出基于承诺的 HTTP 发布请求 (NodeJS)?

JS中如何在函数内部访问调用本函数的元素

如何从另一个 js 文件/函数中触发 mongoose post hook?

如何从方法内部调用 javascript 函数?

如何从云函数内部运行查询?

如何在 JQuery 内部检查哪个控件触发了它