我存儲從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元素的ID ...
<div class="MYELEMENT draggable" id="element"></div>
這個ID被存儲在$name
VAR內iable以上..
我的表看起來像
|term_id| |name| |slug| |term_group|
|100| |element| |X Value here| |Y value here|
您在更新功能我的目標slug
和term_group
看到,並與阿賈克斯的值更新它們WHERE
名字是$_POST['id']
< ---這是element
我表..一切都很好...但
如果我有一個新的$_POST['id']
?
<div class="MYELEMENT draggable" id="element2"></div>// notice the ID changes
ID變化並將傳遞到我的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();
我建議你儘量減少你的問題的範圍,以找到解決方案,它是太混亂了,你是混合的用戶界面和數據庫的問題,瞭解真正的問題 – fmodos
這不是一個UI的問題。它實際上是多少簡單得多看起來我只是想盡可能清楚..總結起來,我只是想爲每個可拖動的項目添加一個新行,並更新所述行的x和y值..以上我只是描述我的佈局,並顯示出其實我可以更新行,我只是不能添加新行如果一個新的ID存在.. – Mike
修改我的邏輯是好的,你會如何添加一個新行的每個元素,並在該行只改變X和Y值運行更新.. – Mike