
您距离很近,但缺少一些小东西……
我在评论中的意思是,您需要
'ajax-script'在两种情况下都使用这种方式:
add_action('wp_enqueue_scripts', 'add_js_scripts'); add_js_scripts(){ wp_enqueue_script( 'ajax-script', get_template_directory_uri().'/js/script.js', array('jquery'), '1.0', true ); wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );}更改 $_REQUEST
为 $_POST
:
function example_ajax_request() { // The $_REQUEST contains all the data sent via ajax if ( isset($_POST) ) { $fruit = $_POST['fruit']; // Let's take the data that was sent and do something with it if ( $fruit == 'Banana' ) { $fruit = 'Apple'; } // Now we'll return it to the javascript function // Anything outputted will be returned in the response echo $fruit; // If you're debugging, it might be useful to see what was sent in the $_POST // print_r($_POST); } // Always die in functions echoing ajax content die(); }新增
add_action( 'wp_ajax_nopriv_ … ):
add_action( 'wp_ajax_nopriv_example_ajax_request', 'example_ajax_request' ); // <= this oneadd_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );
对于您的jQuery脚本
script.js文件,有2件重要的遗漏小事情:
jQuery(document).ready(function($) { var fruit = 'Banana'; $.ajax({ url: ajax_object.ajaxurl, type : 'post', data: { 'action':'example_ajax_request', 'fruit' : fruit }, success:function(data) { console.log(data); }, error: function(errorThrown){ console.log(errorThrown); } });});现在应该可以工作了……
参考文献:
在没有插件的情况下在WordPress网站上将AJAX与PHP结合使用
如何在WordPress插件或主题中使用Ajax?
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)