我的問題是update.php只獲取發佈的表單數據(post_edit
)。通過AJAX早些時候發佈的變量不經過如何將AJAX調用與通過表單發佈數據到同一文件的php文件同步?
Notice: Undefined index: id_to_edit in ...\update.php on line 5
Notice: Undefined index: column_to_edit in ...\update.php on line 6
我想要做的事:
我有痕跡鼠標放在桌子上的身體位置的回調函數。這樣做是爲了檢測用戶想要編輯的單元格的列和id - id整數和列字符串通過AJAX發佈到一個php文件中,並在SQL查詢中使用這兩個值(對於座標)在頂部用戶想要更新的數據(通過表單發佈,稍後更多)。
編輯按照這種方式完成:當用戶將鼠標放在單元格上時,表單將在內部創建,並填充該表單應該發佈數據以更新SQL表中的對應條目(通過使用座標回調函數)。移出將刪除表單。
套用有點
如何發佈座標和表單數據的PHP文件,使所有這些值可以在SQL查詢中使用?如果我一直在做的是從根本上打破了,那麼還有另一種方法嗎?
$(function(){
$("td")
.hoverIntent(
function(e){
var id_of_edit = $(e.target).siblings('th').text();
var $clicked_column_i = $(e.target).index() + 1;
var column_of_edit = $("#tableheader").children("th:nth-child(" + $clicked_column_i + ")").text();
$.ajax({
type: 'POST',
dataType: 'text',
url: 'update.php',
data: {
'id_of_edit': id_of_edit,
'column_of_edit': column_of_edit
},
});
var $edit_button = $('<form action="update.php" method="post"><input type="text" name="post_edit"/></form>');
$(e.target).append($edit_button);
console.log(e.target.innerText + " was clicked");
console.log(id_of_edit + " is the ID");
console.log(column_of_edit + " is the column name");
//just to check the tracer function is working correctly
},
function(e){
$id_of_edit = $(e.target).siblings('th').text();
$clicked_column_i = $(e.target).index() + 1;
$column_of_edit = $("#tableheader").children("th:nth-child(" + $clicked_column_i + ")").text();
$(e.target).children('form').remove();
});
});
update.php:
<?php
include 'config.php';
echo $_POST['id_to_edit'];
echo $_POST['column_to_edit'];
echo $_POST['post_edit'];
$stmt = $pdo->prepare('UPDATE food SET :column = :edit WHERE id = :id');
$stmt->execute([
'id' => $_POST['id_to_edit'],
'column' => $_POST['column_to_edit'],
'edit' => $_POST['post_edit']
]);
?>
代碼中也有拼寫錯誤:** _編輯的id _ **與id _ **到** _edit(其他變量對中的同一個拼寫錯誤) – Shadow