Wordpress ajax数据库调用

我正在努力让ajax工作,如果有人可以指导我,我会非常感激。</ p>

我正在将其构建为插件。</ p>

我有一个名为courselinkscript.js的文件并包含此</ p>

   jQuery(document).ready(function($){

jQuery(“。courselist”)。change(function(){

jQuery.ajax({
type:“POST”,\ n url:my_ajax_object.ajax_url,
data:{'action':'getLinkedCourses'}
//在哪里/我在这里处理我收到的数据。
})

} );
});
</ code> </ pre>

然后在我的主要php文件中命名为course-listing.php我有这个</ p>

   function getLinkedCourses(){
global $ wpdb;
$ results = $ wpdb-&gt; get_results('SELECT list.ID,list.course,list.cost,list.length,link.CourseID FROMwp_course_listAS列表INNER JOINwp_course_link作为链接ON(list.ID = link.LinkID)WHERE link.CourseID = 1',OBJECT);
echo json_e ncode($ results);

wp_die();

}

功能wpb_adding_scripts(){
wp_register_script('courselinkscript',plugins_url('courselinkscript.js',__ FILE__),array('jquery '),'1.0',true);
wp_enqueue_script('courselinkscript');
wp_localize_script('courselinkscript','my_ajax_object',array('ajax_url'=&gt; admin_url('admin-ajax.php')));
}

add_action('wp_ajax_my_list','getLinkedCourses');

add_action('wp_enqueue_scripts','wpb_adding_scripts');

</ code> </ pre>

我对ajax的调用不起作用,因为我不明白需要做什么才能使其失效。 任何帮助表示赞赏。</ p>
</ div>

展开原文

原文

I am struggling with getting ajax to work, if someone can guide me, it'd be greatly appreciated.

I am building this as a plugin.

I have a file named courselinkscript.js and contains this

jQuery(document).ready(function($){

jQuery(".courselist").change(function () {

    jQuery.ajax({
            type:"POST",
            url: my_ajax_object.ajax_url,
            data: { 'action': 'getLinkedCourses' }
            //where/what do I put here to work with the data I received. 
    })


    });
});

Then in my main php file named course-listing.php I have this

function getLinkedCourses() {
    global $wpdb;
    $results = $wpdb->get_results( 'SELECT list.ID, list.course, list.cost, list.length, link.CourseID FROM `wp_course_list` AS list INNER JOIN `wp_course_link` as link ON (list.ID=link.LinkID) WHERE link.CourseID = 1', OBJECT );
    echo json_encode($results);

wp_die();

}


function wpb_adding_scripts() {
wp_register_script('courselinkscript', plugins_url('courselinkscript.js', __FILE__), array('jquery'),'1.0', true);
wp_enqueue_script('courselinkscript');
wp_localize_script( 'courselinkscript', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}

add_action( 'wp_ajax_my_list', 'getLinkedCourses' );

add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' );  

My calls to ajax don't work as I don't understand what needs to be done to initalise it. Any help is appreciated.

doufang8965
doufang8965 尝试初始化对象在这里完成codex.wordpress.org/AJAX_in_Plugins
大约 4 年之前 回复
dqjgf0982
dqjgf0982 你现在纠正了你的网址吗?你需要先纠正它并检查调试工具是否正在发送ajax调用。
大约 4 年之前 回复
doushi9856
doushi9856 现在我该怎么做?我很困惑,我开始使用ajax发送给我的数据
大约 4 年之前 回复
doqo89924
doqo89924 很好.....大多数时候ajax中的问题是由于错误的url,my_ajax_object是早先初始化的
大约 4 年之前 回复
dongtiao1817
dongtiao1817 我发现如何解决这个问题,我认为本地化脚本的名称错误
大约 4 年之前 回复
dtah63820
dtah63820 我得到了ReferenceError:我没有定义my_ajax_object,我不确定如何做url部分。
大约 4 年之前 回复
dphe5602
dphe5602 请在ajax请求中确认您的网址是否正确。您可以尝试alert()来了解问题所在
大约 4 年之前 回复

1个回答



使用下面提到的代码。 它应该可以工作。</ p>

  function getLinkedCourses(){
global $ wpdb;
$ results = $ wpdb-&gt; get_results('SELECT list.ID,list.course ,list.cost,list.length,link.CourseID FROMwp_course_list AS list INNER JOINwp_course_link as link ON(list.ID = link.LinkID)WHERE link.CourseID = 1',OBJECT);
echo json_encode ($ results);

wp_die();

}

功能wpb_adding_scripts(){
wp_register_script('courselinkscript',plugins_url('courselinkscript.js',__ FILE__),array(' jquery'),'1.0',true);
wp_enqueue_script('courselinkscript');
wp_localize_script('courselinkscript','my_ajax_object',array('ajax_url'=&gt; admin_url('admin-ajax.php') ));
}

add_action('wp_ajax_getLinkedCourses','getLinkedCourses');
add_action('wp_ajax_nopriv_getLinkedCourses','getLinkedCourses');
// add_action('wp_ajax_my_list','getLinkedCourses');
\ nadd_action('wp_enqueue_scripts','wpb_adding_scripts');
</ code> </ pre>

用贝尔替换你的javascript ow代码:</ p>

  jQuery(document).ready(function($){

jQuery(“。courselist”)。change(function(){
\ n jQuery.ajax({
type:“POST”,
url:my_ajax_object.ajax_url,
data:{'action':'getLinkedCourses'},
//在哪里/我在这里放什么来处理 我收到的数据。
成功:函数(数据){
var obj = jQuery.parseJSON(data);
console.log(obj);
},
});

}) ; \ N});

</ code> </ pre>
</ div>

展开原文

原文

Use the below mentioned code. It should work.

function getLinkedCourses() {
   global $wpdb;
   $results = $wpdb->get_results( 'SELECT list.ID, list.course, list.cost, list.length, link.CourseID FROM `wp_course_list` AS list INNER JOIN `wp_course_link` as link ON (list.ID=link.LinkID) WHERE link.CourseID = 1', OBJECT );
   echo json_encode($results);

  wp_die();

}


function wpb_adding_scripts() {
   wp_register_script('courselinkscript', plugins_url('courselinkscript.js', __FILE__), array('jquery'),'1.0', true);
   wp_enqueue_script('courselinkscript');
   wp_localize_script( 'courselinkscript', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}

add_action( 'wp_ajax_getLinkedCourses', 'getLinkedCourses' );
add_action( 'wp_ajax_nopriv_getLinkedCourses', 'getLinkedCourses' );
// add_action( 'wp_ajax_my_list', 'getLinkedCourses' );

add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' );

Replace your javascript with the below code:

 jQuery(document).ready(function($){

   jQuery(".courselist").change(function () {

      jQuery.ajax({
         type:"POST",
         url: my_ajax_object.ajax_url,
         data: { 'action': 'getLinkedCourses' },
         //where/what do I put here to work with the data I received.
         success: function(data) {
             var obj = jQuery.parseJSON(data);
             console.log(obj);
         },
      });

   });
}); 

dryeyhe0266
dryeyhe0266 谢谢! 这就像我需要它一样! 我可以从这里做其余的事。 非常感谢您的帮助。
大约 4 年之前 回复
dsa89029
dsa89029 用我上面添加的代码替换您的脚本文件。 obj变量将拥有您的数据
大约 4 年之前 回复
duanjiao6711
duanjiao6711 这让我得到了正确的地址。 Ajax调用正在运行。 我现在如何获取数据?
大约 4 年之前 回复
dongshuo6185
dongshuo6185 在jQuery.ajax之前放置alert(my_ajax_object.ajax_url),看看你是否收到了url。
大约 4 年之前 回复
dsasd12314
dsasd12314 好的,我已经把你的代码放入了。我现在在javascript文件中做什么来查看数据是否通过?
大约 4 年之前 回复
dseax40600
dseax40600 您的脚本中缺少一些内容:1。wp_register_script和wp_localize_script中的句柄名称不同。 2.用于处理add_action函数中的ajax请求的Hook不正确。
大约 4 年之前 回复
duanche5149
duanche5149 这什么都不做。 我想你刚刚纠正了本地化脚本? 我已经修好了。 我现在不知道如何处理结果/如何使它们出现等
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐