Intereting Posts
Как изменить названия роли в Bbpress? Сохранить сообщение meta foreach loop Название, как страница не работает в Twenty Eleven Создайте запрос, объединяющий список событий с обычным типом сообщений и следуя некоторым требованиям, используя acf Скопировать настройки WordPress в другой блог Как заставить get_template_part сначала сначала проверять дочернюю тему? Удаление пользовательского таксономического термина только увеличивает значение tag_ID Фиксирование wpdb-> get_results и wpdb-> подготовка? IF для фильтрации изображения с изображением permalink и add_rewrite_rule – ошибка 404 Выбор динамической боковой панели через обмен в wordpress Тип сообщения нет одной страницы При активации дочерней темы какие базовые настройки необходимо сбросить, т.е. Пользовательские меню и т. Д.? позвонить другому короткому коду в электронном письме contactform7 отправить Как получить метаданные пользователя для публикации?

Сценарий jQuery не отправляется в базу данных

Это сценарий jQuery, над которым я работаю, чтобы отправлять входные данные в базу данных, предполагая, что пользователь, отправляющий данные, зашел в систему, и не сделал существующей записи для элемента, для которого пользователь отправляет данные.

В настоящее время он не дает никаких результатов, и я не совсем уверен, почему, так как я часто не работаю с jQuery.

Вот блок-схема, иллюстрирующая то, что я пытаюсь выполнить:

введите описание изображения здесь

function csv_three_script() { //Include Javascript library wp_enqueue_script( 'csv3', plugins_url( '/js/demo.js', __FILE__ ), array( 'jquery' ) ); wp_localize_script( 'csv3', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php'))); } add_action( 'wp_enqueue_scripts', 'csv_three_script' ); function check_db(){ global $table; global $quanid; $hf_userid = get_current_user_id(); global $wpdb; $wpdb->get_results( $wpdb->prepare("SELECT count( 1 ) FROM $table WHERE ItemID = '$quanid' AND user = '$hf_userid'", ARRAY_A)); } add_action('wp_ajax_check_db', 'check_db'); function update_entry(){ global $quanid; $price = isset($_POST[$quanid]); $hf_userid = get_current_user_id(); global $table; global $wpdb; $wpdb->update( $wpdb->prepare( '$table', array( 'ItemID' => '$quanid', 'Price' => $price, 'user' => $hf_userid))); } add_action('wp_ajax_update_entry', 'update_entry'); function post_entry(){ global $quanid; $price = isset($_POST[$quanid]); $hf_userid = get_current_user_id(); global $wpdb; $wpdb->insert( $wpdb->prepare( '$table', array( 'ItemID' => '$quanid', 'Price' => $price, 'user' => $hf_userid ), array( '%d', '%d', '%d' ) )); die(); return true; } add_action('wp_ajax_post_entry', 'post_entry'); 

 jQuery(document).ready(function() { var data = { action: 'is_user_logged_in' }; jQuery.post(ajaxurl, data, function(response) { if (response == 'yes') { // user is logged in jQuery.ajax({ type: 'POST', url: MyAjax.ajaxurl, data: { "action": "check_db", "user": user, "ItemID": ItemID }, function(data) { if (data.exists) { //existing entry found, update entry function UpdateRecord(id) { jQuery.ajax({ type: 'POST', url: MyAjax .ajaxurl, data: { "action": "update_entry", "ItemID": ItemID, "Price": Price, "user": user }, success: function( response ) { alert ( "Price successfully submitted." ); } }); } } else { //existing entry not found, create new entry jQuery("#submit").click( function() { var name = jQuery( "#ItemID").val(); jQuery.ajax({ type: 'POST', url: MyAjax .ajaxurl, data: { "action": "post_entry", "ItemID": ItemID, "Price": Price, "user": user }, success: function( response ) { alert ( "Price successfully submitted." ); } }); }); }); } }, 'JSON'); } else { // user is not logged in alert("You must be logged in to submit prices."); } } }); 

Solutions Collecting From Web of "Сценарий jQuery не отправляется в базу данных"

Вы используете глобальные переменные: (всякий раз, когда вы думаете, что вам нужно использовать глобальный, вы должны автоматически прекратить кодирование и инвестировать столько времени, сколько требуется, чтобы удалить эту потребность.

В вашем случае кажется, что вы предполагаете, что глобальные переменные сохраняются между запросами Ajax, но они этого не делают. Кроме того, ваша конструкция кода нарушена, так как в конфигурации клиентского сервера вы не можете предположить, что состояние сервера остается неизменным между запросом, поэтому, когда вам нужно выполнить некоторую операцию, вам нужно сделать это в одном запросе, а не разбить его на 3. Хорошая конструкция позволяет пользователю узнать, что он не может выполнить операцию, но вам нужно перепроверить все условия, когда вы фактически выполняете операцию, даже если вы проверили их при отображении пользовательского интерфейса для пользователя.