Intereting Posts
Обработка отказов электронной почты с помощью PHP? Как избежать дублирования сообщений из базы данных в системе «бесконечной прокрутки»? PHP: отправка огромного количества писем в пакетном режиме Как создать штрих-код с помощью PHP и отобразить его как изображение на одной странице извлекать данные в выпадающем меню ajax с помощью PHP MySql jQuery Как использовать разбиение на страницы в laravel 5? Как получить базовый URL с PHP? Как установить ремесленника Laravel? проверка формы для различных условий в воспламенителе кода MySQL выбирает конкретную запись из таблицы, которая не находится в другой таблице Предварительная загрузка изображений SVG удалять информацию из таблицы mysql, когда пользователь закрывает свой браузер PDO с Singleton не может получить доступ к частной собственности Ошибки Php: Предупреждение: require () : действие open_basedir PHP Передать переменную на следующую страницу

wordpress ajax не обновляет базу данных

надеюсь, что вы можете вести меня, я пытаюсь запустить этот учебник: http://www.inkthemes.com/how-to-use-ajax-in-wordpress-for-data-insertion/#

Это мой WordPress Plugin Javascript:

jQuery(document).ready(function(){ jQuery("#submit").click(function(){ console.log("click caught");//this bit works var name = jQuery("#dname").val(); jQuery.ajax({ type: 'POST', data: {"action": "post_word_count", "dname":name}, success: function(data){ alert(data);//this alert appears full of html } }); }); }); 

это плагин php:

 function show_form(){ echo "<form>"; echo "<label>Name</label>"; echo "<input type='text' id='dname' name='dname' value=''/><br/>"; echo "<input type='button' id='submit' name='submit' value='Submit'/>"; echo "</form>"; } add_action('the_content', 'show_form'); function post_word_count(){ $name = $_POST['dname']; global $wpdb; $wpdb->insert( 'bio', array( 'bio_surname' => $name ), array( '%s' ) ); die(); return true; } // add_action('wp_ajax_post_word_count', 'post_word_count'); // Call when user logged in add_action('wp_ajax_nopriv_post_word_count', 'post_word_count'); // Call when user in not logged in ?> 

поэтому, что я нахожу в своем отладчике, заключается в том, что данные POST консоли – это «dname», представленный в форме ввода. однако таблица базы данных «bio» не обновляется. все, что происходит, – это предупреждение, заполняемое всем html сайта, на котором работает. то есть. RESPONSE в консольном отладчике представляет собой массивный html-текст.

Итак, я не понимаю, почему data = мой сайт html И почему таблица «bio» не обновляется.

в файле php плагина сначала добавьте свой файл сценария java, как этот

 wp_enqueue_script('ajax-script-xyz','***javascript file path***', array('jquery')); wp_localize_script('ajax-script-xyz', 'ajax_object', array( 'ajax_url' => admin_url('admin-ajax.php'), ) ); 

Плагин Javascript: добавьте URL-адрес admin-ajax.php

 jQuery(document).ready(function(){ jQuery("#submit").click(function(){ console.log("click caught");//this bit works var name = jQuery("#dname").val(); jQuery.ajax(ajax_object.ajax_url, {//**add admin-ajax.php fill url ** type: 'POST', data: {"action": "post_word_count", "dname":name}, success: function(data){ alert(data);//this alert appears full of html } }); }); }); 

для теста под контролем проверить эту ссылку http://codex.wordpress.org/AJAX_in_Plugins

Вы не определили URL-адрес в ajax:

 jQuery(document).ready(function(){ jQuery("#submit").click(function(){ var name = jQuery("#dname").val(); jQuery.ajax({ type: 'POST', // Adding Post method url: ajaxurl, // Including ajax file data: {"action": "post_word_count", "dname":name}, // Sending data dname to post_word_count function. success: function(data){ // Show returned data using the function. alert(data); }); }); });