Intereting Posts
Преобразование одного формата даты в другой в PHP PHP MySQL Выберите ID из одной таблицы и информации из другой таблицы Выделение конкретных данных из многомерного массива PHP Как создать пользовательскую страницу динамически после регистрации пользователя Существует ли альтернатива пространству имен, альтернативная классу class_exists () PHP? сайт называется дважды? Ошибка субдомена 500 Laravel Вывод скрипта после команды тайм-аута Среди $ _REQUEST, $ _GET и $ _POST, какой из них самый быстрый? Как точно работают границы слова регулярного выражения в PHP? Что такое session_id () и session_name ()? Объясните, как они используются в следующем коде Как я могу удалить сеанс Symfony из файла? файлы .docx через мой веб-сервер повреждены при открытии Как вставить данные формы из нескольких полей в один столбец таблицы sql Есть ли функция, чтобы сделать копию массива PHP другой?

Добавить и обновить строку в базе данных

Я храню некоторые данные из jQuery UI в базу данных ….

$( ".MYELEMENT" ).draggable({ stop: function(event, ui) { var pos_x = ui.position.left; var pos_y = ui.position.top; var divid = ui.helper.attr("id"); jQuery.ajax({ type: "POST", url: window.ajaxurl, data: { "action": "myAjax", id: divid, x: pos_x, y: pos_y }}) .done(function( msg ) { }); } }); 

Обратите внимание на эти переменные, я передаю их в свой сценарий.

 function myAjax() { global $wpdb; // The data here comes from an ajax call $term_id = 100; $name = $_POST['id']; $slug = $_POST['x']; $term_group = $_POST['y']; // I'm adding into wp_terms a default table (for testing)... $query = "INSERT INTO $wpdb->terms (term_id, name, slug, term_group) VALUES (%s, %s, %s, %s)"; // Here I insert the ajax data into the columns $wpdb->query($wpdb->prepare($query, $term_id, $name, $slug, $term_group)); $wpdb->update("$wpdb->terms", array('slug' => $_POST['x'], 'term_group' => $_POST['y']), array('name' => $_POST['id'])); die(); } 

$_POST['id']; это идентификатор этого HTML-элемента …

 <div class="MYELEMENT draggable" id="element"></div> 

этот идентификатор хранится внутри переменной $name выше.

Моя таблица выглядит так:

 |term_id| |name| |slug| |term_group| |100| |element| |X Value here| |Y value here| 

вы видите в функции обновления I целевого slug и term_group и обновляете их с помощью значения ajax. term_group WHERE : $_POST['id'] <— это element в моей таблице .. Все хорошо … НО

Что делать, если у меня есть новый $_POST['id'] ?

 <div class="MYELEMENT draggable" id="element2"></div>// notice the ID changes 

Идентификатор изменяется и переходит в мое значение ajax, как мне создать новую строку и продолжать обновлять значения строк X и Y? и я продолжу добавлять новые элементы.

 <div class="MYELEMENT draggable" id="element3"></div> <div class="MYELEMENT draggable" id="element4"></div> 

Каждый div должен иметь свою строку. Это работает, когда я вручную изменяю $term_id = 100; например, когда я перетаскиваю <div class="MYELEMENT draggable" id="element"></div> это сохраняется в базе данных, как указано выше

 |term_id| |name| |slug| |term_group| |100| |element| |X Value here| |Y value here| 

НО, когда я изменяю $term_id = 100; до $term_id = 101; и перетащите <div class="MYELEMENT draggable" id="element2"></div> строка над палочками … и создается новая строка

 |term_id| |name| |slug| |term_group| |101| |element2| |X Value here| |Y value here| 

Это то, чего я пытаюсь достичь, но я не хочу вручную изменять $term_id = 101;

Имеет ли это смысл?

ОК РЕШЕНИЕ Я, наконец, использовал небольшую логику и решил дать номера ID.

  echo '<div class="MYELEMENT draggable" id="100"style="left: '.$x.'px; top: '.$y.'px;"></div>'; echo '<div class="MYELEMENT draggable" id="102"style="left: '.$x.'px; top: '.$y.'px;"></div>'; echo '<div class="MYELEMENT draggable" id="103"style="left: '.$x.'px; top: '.$y.'px;"></div>'; 

Затем я запускаю свое обновление следующим образом

  global $wpdb; //The data here comes from an ajax call $term_id = $_POST['id']; $name = $_POST['id']; $slug = $_POST['x']; $term_group = $_POST['y']; //Im adding into wp_terms a default table (for testing)... $query = "INSERT INTO {$wpdb->terms} (term_id, name, slug, term_group) VALUES (%s, %s, %s, %s)"; //Here I insert the ajax data into the columns $wpdb->query($wpdb->prepare($query, $term_id, $name, $slug, $term_group)); $wpdb->update("$wpdb->terms", array('slug' => $_POST['x'], 'term_group' => $_POST['y']), array('term_id' => $_POST['id'])); die();