Я добавление данных в базу данных и мне нужна новый идентификатор для каждого элемента, идентификатор элемента получает передаются в АЯКС данных ...Включите данные ajax в массив?
$(".silly-string").draggable({
containment: '#_moon_static_bg_status',
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) {
$('.silly-string').text(msg)
});
}
});
Данные отправляются только тогда, когда функция перетаскивания происходит (так Я думаю, что, возможно, должны быть созданы где-то данные?) ... Позволь мне показать вам пример HTML
echo '<div class="silly-string draggable" id="silly"style="left: '.$x.'px; top: '.$y.'px;"></div>';
echo '<div class="silly-string draggable" id="silly2"style="left: '.$x.'px; top: '.$y.'px;"></div>';
echo '<div class="silly-string draggable" id="silly3"style="left: '.$x.'px; top: '.$y.'px;"></div>';
я собираюсь сделать эти IDS динамическими поэтому, когда пользователь щелкает добавить новый элемент идентификатор будет приращение ex. каждый раз, когда добавляется новый клик, будет создан новый div, id будет глупым + 1, поэтому, если есть 10 элементов, у десятой будет ID глупых10, надеюсь, что это имеет смысл?
Посмотрите на .draggable код/АЯКС выше вы видите УАК DIVID, который принимает идентификатор каждого DIV с классом .silly-string
так, глядя на консоли входа у него есть из положить каждый ID ..
То, что я пытаюсь достичь, заключается в добавлении данных в базу данных, где я создаю новую строку для каждого идентификатора, но переписываю каждую строку, которая уже была создана с этим идентификатором ... Позвольте мне показать пример, чтобы иметь смысл что я только что сказал ...
http://i.stack.imgur.com/rIPQM.jpg
Вы видите, что у новой строки глупо, и silly2 ... единственная причина, я делаю это потому, что я вручную изменил ID 100 & 101 .. но мне нужно изменить идентификатор, чтобы быть динамичным, позвольте мне показать вам пример ..
global $wpdb;
//The data here comes from an ajax call
$_POST['x'];
$_POST['y'];
$_POST['id'];
$term_id = 100;
$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('name' => $_POST['id']));
die();
Здесь я я добавляю данные в базу данных ... Обратите внимание, что переменные $name
и $slug
являются динамическими на основе данных ajax ... и когда я запускаю обновление $wpdb->update("$wpdb->terms", array('slug' => $_POST['x'], 'term_group' => $_POST['y']), array('name' => $_POST['id']));
, он отлично работает для одного элемента, я перезаписываю slug, с новыми данными. если я создаю динамику $term_id = 100;
, то она побеждает мою цель не создавать новую строку каждый раз, когда значения x & меняются, потому что ДА это создает новый идентификатор, но каждый раз меняет идентификатор на новый идентификатор ...
Теперь, когда вам нужно ускорить то, что у меня происходит (надеюсь, что это было не долго и не имеет смысла), мне нужно будет создать новую переменную ajax для передачи или мне нужно будет создать оператор foreach ? ех.
foreach($_POST['id'] as $key => $value) {
//Stuff
}
или автоматическое приращение переменной в Аякса .. Я имею в виду я действительно потерял в этой части, и я открыт для некоторых более опытных людей, мнений и решений .. может спасти меня много головной боли ...
Позвольте мне знать, если вам нужно мне указывать что-то его трудно напечатать, что exactaly я вижу в моем коде и моей логике, но я сделал все, что мог
После @ MH- раствора таблица выглядит это
http://i.stack.imgur.com/PO0AM.jpg
Он по-прежнему добавляет новую строку, когда элемент перетаскивается ... вот как я реализовал код в своем скрипте, возможно, я сделал это неправильно?
global $wpdb;
//The data here comes from an ajax call
$_POST['x'];
$_POST['y'];
$_POST['id'];
$name = $_POST['id'];
$slug = $_POST['x'];
$term_group = $_POST['y'];
$myrows = $wpdb->get_row("SELECT id FROM {$wpdb->terms} WHERE name LIKE '{$name}'");
if($myrows != null){
$term_id = $myrows->id;
$wpdb->update("$wpdb->terms", array('slug' => $_POST['x'], 'term_group' => $_POST['y']), array('name' => $_POST['id']));
} else {
//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));
}
die();
Глядя на изображение ... где глупо и глупо 2 .. для каждого должна быть только одна строка.
Хорошо, извините, я узнал, почему он исчезает ... Я правильно выполнил код? – Mike
Не добавили бы 1 на $ term_id для каждой уникальной работы ID? – Mike
Я не уверен, что вы имеете в виду? –