ユーザーがサムネイルを選択すると、データベースからの大きな画像とIDが表示される場合、スクリプトがあります。
この時点までは非常にうまく機能します
私が今やろうとしているのは、ユーザーがサムネイルをクリックしたときに、テーブルにあるデータを表示したいということです。
どうやってやるの?
私のデータベース関係:
私のデータベースには、主キーと外部キーを持つ2つのテーブルがあります。
主キーを持つテーブルにあるサムネイルを選択すると、外部キーを含む他のテーブルのデータを表示したい。
私のコード: Javascript:
function swap(image) {
document.getElementById("imagem-selec").src = image.href;
$("input[name='Id_Img']").val($(image).data("id"));
}
サムネイルのリストを表示する HTML:
@foreach (var p in ViewBag.Img)
{
<li>
<a href="~/Files/@p.Name" onclick="swap(this); return false;" data-id="@p.Id">
<img src="~/Files/@p.Name"/>
</a>
</li>
パスを受け取る Html
<div id="wrap">
<img id="i-selec" src=""/>
</div>
何か提案はありますか?
前もって感謝します
私のコードを更新:
脚本
function swap(image) {
var imageID = $(image).data("id");
$.ajax("/{Admin}/GetImageData",
{
data: JSON.stringify({ ID: imageID }),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
// Add your content to DOM here:
// values in data.data1 etc...
values in data.De, data.Sc
}
error: function () {
alert("error!");
}
});
};
コントローラ:
public JsonResult GetImageData(int ID)
{
using (SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
SqlDataAdapter sqlAdapt = new SqlDataAdapter
(@"SELECT C.* From Content C inner join Image B on C.ID_Img = B.Id WHERE C.Id=" + ID, cn);
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlAdapt);
DataSet data = new DataSet();
sqlAdapt.Fill(data, "Content ");
cn.Close();
return Json(data);
}
}