我有 2 個 Ajax 呼叫,第一個正在作業,但是當它將資料發送到其他檔案send_data.php
并且當我嘗試運行任何 wordpress 函式時它不起作用!
這是第一個 ajax 呼叫,現在send_data.php
當我嘗試運行像這樣的任何 wordpress 函式時發送到檔案 的資料add_post_meta(2, 'dropbox', 'Senddataphp', false);
它會列印這個錯誤我想要做的非常簡單,只需將資料從 ajax 插入到 wp 資料庫中,但我不知道每次我使用帶有 php 問題的 js 時都會發生這種情況
caught Error: Call to undefined function add_post_meta() in C:\xampp\htdocs\wordpress\wp-content\plugins\Dropboxapi\includes\send_data.php:17
Stack trace:
第一個 Ajax 代碼
$.ajax({
type: "POST",
url: 'wp-content/plugins/Dropboxapi/includes/send_data.php',
data: {
req: JSON.stringify(dropbox_links)
},
cache: false,
success: function(responseData) {
// consider using console.log for these kind of things.
console.log("Data recived: " responseData);
console.log("First Ajax" dropbox_links);
}
});
此處的第二個 Ajax 代碼我嘗試執行一個函式,該函式將發送的資料插入資料庫,但它不起作用,dropbox.php
檔案是插件的主檔案
$.ajax({
type: "POST",
url: 'wp-content/plugins/Dropboxapi/dropbox.php',
data: {
functionname: 'printdata2'
},
success: function(obj, textstatus) {
if (!('error' in obj)) {
var yourVariable = obj.result;
console.log("SEc Ajax" dropbox_links yourVariable);
} else {
console.log(obj.error);
console.log("SEc1 errr Ajax" dropbox_links
yourVariable);
}
},
error: function(msg) {
console.log(
" errrnot sure what to ask for here to check issue"
msg);
}
});
uj5u.com熱心網友回復:
在 WordPress 中使用 ajax 時,不會直接呼叫存盤要運行的函式的檔案。而是admin-ajax.php
呼叫,并在'action'
. 首先創建一個函式并add_meta_box
在其中添加您的函式,然后添加 wp_ajax 操作掛鉤,如下所示。請記住,將由 ajax 請求呼叫的每個函式都必須以wp_die()結尾。
function printdata2() {
add_post_meta(2, 'dropbox', 'Senddataphp', false);
wp_die();
}
add_action( 'wp_ajax_nopriv_printdata2', 'printdata2' );
add_action( 'wp_ajax_printdata2', 'printdata2' );
接下來使用wp_localize_script()傳遞admin_url('admin-ajax.php')
給 javascript。
function load_script() {
wp_enqueue_script( 'your-js', get_template_directory_uri() . '/js/your-js.js', array('jquery') );
wp_localize_script( 'your-js', 'ajax_object', array('ajaxurl' => admin_url('admin-ajax.php')) );
}
add_action('wp_enqueue_scripts', 'load_script');
現在在你的 javascript 檔案ajaxurl
中呼叫url
和回呼函式名稱在action
.
$.ajax({
url: ajax_object.ajaxurl,
data: {
action: 'printdata2'
},
success: function(obj, textstatus) {
// obj goes here...
},
error: function(msg) {
console.log(msg);
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/498255.html
標籤:javascript php 阿贾克斯 WordPress 插件