私の問題は、update.phpは投稿されたフォームデータ(post_edit
)のみを取得することです。私はテーブルの身体上のマウスの位置をトレースコールバック関数を持っている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
を経由しませんAJAXを通じて以前掲載しました。これは、ユーザーが編集したいセルの列とIDを検出するために行われます。id整数と列文字列は、AJAXを介してPHPファイルにポストされ、SQLクエリーで使用されます。ユーザーが更新したいデータ(フォームを介してポストされます、詳細は後で説明します)。
編集は次のように行います。ユーザーがマウスの上にマウスを置いたときにフォームが作成され、そのフォームに記入すると、データをポストしてSQLテーブルの対応するエントリを更新する必要がありますコールバック関数)。マウスを外してフォームを削除します。すべてのこれらの値は、SQLクエリで使用することができるように私はPHPファイルへの座標とフォームデータを投稿するにはどうすればよいビットに
を言い換えする
?私がやっていることが根本的に壊れているなら、別の方法がありますか?
$(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 _ ** of _ _ edit vs id _ ** to ** _edit(他の変数ペアと同じタイプミス) – Shadow