我需要将jQuery中变量的值传递给PHP中的变量值。
我正在使用wordpress并且已经运行了AJAX。
var pie = 12;
然后将pie的值传递给。
-
<?php $new_pie = <b>value from var pie in jquery needs to go here.</b> ?>
希望有道理。 谢谢你们。
修改
谢谢OhGodWhy
看起来像。
虽然让它工作有点麻烦。
在wordpress工作..
的jQuery
var pie = 'test';
$.ajax({
url: 'http://localhost:8888/ph/wp/wp-admin/admin-ajax.php',
type: 'POST',
action: 'MyAjaxFunction',
data: { pie : pie },
success: function (data){
console.log(data);
}
});
的functions.php
add_action( 'wp_ajax_nopriv_my_ajax_function', 'MyAjaxFunction' );
add_action( 'wp_ajax_my_ajax_function', 'MyAjaxFunction' );
function my_ajax_function() {
$new_pie = isset($_POST['pie']) ? $_POST['pie'] : false;
echo($new_pie);
}
答案 0 :(得分:2)
使用jQuery的AJAX将数据发送到服务器。
$.ajax({
url: '/path/to/my/script.ext',
type: 'POST',
data: { pie : pie },
success: function (data){
console.log(data);
}
});
使用三元运算符分配给变量。稍后在您的脚本中,您可以检查if($new_pie)
,如果它返回true,则该值已发布,否则它从未发布,您可以执行此时所需的任何逻辑。
$new_pie = isset($_POST['pie']) ? $_POST['pie'] : false;
修改强>
&#34;行动&#34;您在ajax调用中提供的参数实际上是data
对象的一部分。它还必须与wp_ajax_
参数中的wp_ajax_nopriv_
和add_action
后面的内容完全匹配,请参阅下面的正确实现。
jQuery的:
$.ajax({
url: ajaxurl, //super global supplied by Wordpress; do not change
type: 'POST',
data: {
action: 'get_post_title', //this is correct
pie : pie
},
success: function (data){
console.log(data);
}
});
现在,您的add_action
实际上会传递AJAX请求,因为get_post_title
已正确传递为您的AJAX请求中的操作。
此外,add_action
的第二个参数是文字函数名称,不能与函数声明有任何不同,请参阅下文:
add_action( 'wp_ajax_nopriv_get_post_title', 'my_ajax_function' );
add_action( 'wp_ajax_get_post_title', 'my_ajax_function' );
function my_ajax_function() {
$new_pie = isset($_POST['pie']) ? $_POST['pie'] : false;
echo($new_pie);
}
请注意, 'my_ajax_function
中的add_action
与function my_ajax_function(){
的功能声明完全匹配。
这将解决您的问题。
答案 1 :(得分:0)
您需要使用jQuery.ajax()
将jQuery数据发送到PHP脚本。