如何在函数内部触发 $.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)?