PHPプロジェクトのMySQLDBにたくさんの機能テーブルがあります。私はphpを介してフェッチし、コードを使用して写真テーブルの列名とレコードのIDで名前が付けられたテキストボックスを持つテーブルを作成しています:
functions.php
コード:
function m_html_editPhotos($id) {
$result = "<table class=\"tabelka\" id=\"tbl_photos\"><thead><tr><th>Miniaturka</th><th>Duże zdjęcie</th></tr></thead><tbody>";
$mysqli = m_db_Init();
$qry = "SELECT ID, Img_Min, Img_Nrm FROM tbl_Zdjecie WHERE ID_Grzyb = ?";
if($stmt = $mysqli -> prepare($qry)) {
$stmt -> bind_param("i", $id);
mysqli_stmt_bind_result($stmt, $img_id, $img_min, $img_nrm);
$stmt->execute();
$i =0;
while (mysqli_stmt_fetch($stmt)) {
$i = $i+1;
$result .= "<tr><td><!--<label>Link do miniaturki:<label>--><input type=\"text\" class=\"required\" name=\"photo[$i][min]\" value=$img_min></td><td><!--<label>Link do zdjęcia pełnego rozmiaru:</label>--><input type=\"text\" class=\"required\" name=\"photo[$i][nrm]\" value=$img_nrm></td><td style=\"display:none;\"><input type=\"text\" name=\"photo[$i][id]\" value=$img_id /></td></tr>";
}
$stmt -> close();
}
mysqli_close($mysqli);
$result .= "</tbody></table><div class=\"link\" onclick=\"AddPhotoEditRow();\">Dodaj kolejne zdjęcie</div>";
return $result;
}
img_min
次に、thumbnail_url( )とフルサイズリンク( )のテキストボックスを使用して、上記のように生成されたテーブルの各行を反復処理する写真テーブルを編集します。さらに、関数ごとimg_nrm
に動的に作成された行から新しい写真をテーブルに追加します。 AddPhotoEditRow();
functions.js
コード:
function AddPhotoEditRow(){
$('#tbl_photos > tbody:last').append('<tr><td><input type="text" name="photo[0][min]"></td><td><input type="text" name="photo[0][nrm]"></td><td style=\"display:none;\"><input type=\"text\" name=\"photo[0][id]\" value=\"0\" /></td></tr>');
}
edit.php
コード:
include 'functions.php';
if(isset($_POST["change"])) m_db_updateAllFeatures($_GET["id"]);
if (m_db_isAdmin("")){
if (!isset($_GET["id"]) || !is_numeric($_GET["id"]))
header("Location: ../index.php");
else {
if (isset($_POST["Nazwa_PL"]))
m_db_UpdateName("PL", $_GET["id"],$_POST["Nazwa_PL"]);
if (isset($_POST["Nazwa_Lac"]))
m_db_UpdateName("Lac", $_GET["id"],$_POST["Nazwa_Lac"]);
render_edit_body();
}
}
写真のリンクを何とか繰り返し、$ _ POSTを介して渡されたテキストボックス名を解析して既存のレコードを更新したいと思います。さらに、新しい写真のリンク(id = 0のリンク)を挿入するとよいでしょう。テーブルに挿入するのか、更新するのかを区別する必要があるため、新しい行のIDを0に設定しています。0
すべてのインデックス付きフィールドを追加し、残りを挿入する必要があると想定しました。私の考えは間違っているかもしれません。そのテーブルの「制御」に対して完全な機能を実行するためのより良い方法がある場合、私は提案を非常に受け入れます。