Intereting Posts
Ключ приоритет в админ с пользовательским плагином Изменение имени темы wordpress (не детская тема) Скрыть защищенные паролем сообщения Открытие страницы плагина без создания страницы wordpress для короткого кода Расширение функции для вызова плагина или ссылки Сообщения, не показывающие Передача переменной из дочерней темы в родительскую тему if (is_home () &&! is_front_page ()) Как я могу связать пользователей через несколько поддоменов? Как добавить кнопку загружаемого изображения (точно так же, как в пользовательском заголовке) в параметрах темы, которые я только что создал? Для одного связанного изображения за сообщение переопределите эту ссылку с постоянной ссылкой, если на главной странице Как динамически создавать субдомен при создании пользователя в WordPress? Галерея Shortcode – отображать только первые x миниатюр Условный тег шаблона для страниц приятеля Ограничить запрос до последнего дня сообщениями

Сценарий 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. Хорошая конструкция позволяет пользователю узнать, что он не может выполнить операцию, но вам нужно перепроверить все условия, когда вы фактически выполняете операцию, даже если вы проверили их при отображении пользовательского интерфейса для пользователя.