私は大きな問題を抱えています。 私は自分のhtmlでテーブルを持っています。私はjsでlocalstoreを使用しています(以前はこれまで使用していませんでした) 新しい行を挿入し、localstoreに保存します。 生のIDを入れるために、私は自分のローカルストレージの長さを取得します。テーブル内にコンテンツを配置するためのLocalstorageでの作業(JQuery)
たとえば、私はIDが1,2,3の3つの行を持っています。 私が1つを削除しようとすると、番号2と言うことができます。削除することはできますが、次回は新しく生まれたID:2を持っています。 なぜですか?idを入れるためにlocalstorage.length + 1を使用しているためです。もし前に3回、次回に3回、 ID = 3の私のコンテンツを置き換えます。 間違いを避けるために何ができますか?
2つの余分なもの:
私のJSは、この
crearTabla(tablastorage)
$("#btnNuevo").on('click',function(){
$("#mymodal1").modal("show");
$('#btnGuardar').data('evento','crear');
});
$("#btnCargar").on('click',function(){
crearTabla(tablastorage)
});
$("#btnGuardar").on('click',function(){
if($(this).data('evento') == "crear"){
Crear();
$('input:text').val('');
}
else{
Modificar();
}
$("#mymodal1").modal("hide");
});
function crearTabla(data){
$("#tabla").empty();
$.each(data, function(index, val){
var temp = JSON.parse(val);
var $tr = $("<tr/>");
var $tdID = crearTD(temp.id);
var $tdMatricula = crearTD(temp.matricula);
var $tdNombre = crearTD(temp.nombre);
var $tdSexo = crearTD(temp.sexo);
var $tdAccion = crearAccion(temp);
$tr.append($tdID, $tdMatricula, $tdNombre, $tdSexo, $tdAccion);
$("#tabla").append($tr);
$('input:text').val('');
})
}
function Crear(){
var $tr = $("<tr/>");
var $tdID = crearTD(tablastorage.length+1);
var $tdMatricula = crearTD($("#matricula").val());
var $tdNombre = crearTD($("#nombre").val());
var $tdSexo = crearTD($("#sexo").val());
var JSon = {
id:tablastorage.length+1,
matricula:$("#matricula").val(),
nombre:$("#nombre").val(),
sexo:$("#sexo ").val()
}
if($('#matricula').val()=='' || $('#nombre').val()=='' || $('#sexo').val()==''){
alert("Uno o mas campos vacios");
}
else{
tablastorage.setItem(tablastorage.length, JSON.stringify(JSon))
var $tdAccion = crearAccion(JSon);
crearTabla(tablastorage)
$('input:text').val('');
}
};
function crearTD(texto){
return $("<td/>").text(texto);
};
function crearAccion(objeto){
var $td = $("<td/>");
var $div = $("<div/>",{
class:'btn-group',
role:'group'
});
var $btnElminar = $("<button/>",{
class:'btn btn-danger eliminar'
}).html("<i class='glyphicon glyphicon-remove'></i>"
).data('elemento',objeto);
var $btnModificar = $("<button/>",{
class:'btn btn-info modificar'
}).html("<i class='glyphicon glyphicon-pencil'></i>"
).data('elemento',objeto);
$div.append($btnElminar, $btnModificar)
return $td.append($div);
};
$("#tabla").on('click','.eliminar',function(event){
console.log($(this).data('elemento').id)
tablastorage.removeItem($(this).data('elemento').id-1)
crearTabla(tablastorage)
});
$("#tabla").on('click','.modificar',function(event){
index = $(this).data('elemento').id-1;
var $elemento = $(this).data('elemento');
$('#btnGuardar').data('evento','modificar');
$('#id').val($elemento.id);
$('#matricula').val($elemento.matricula);
$('#nombre').val($elemento.nombre);
$('#sexo').val($elemento.sexo);
$("#mymodal1").modal("show");
});
と私のHTMLは、このコードを持っています。 1.私の悪い英語のために申し訳ありません。私が間違いを犯したのは、常に英語ではなくスペイン語を話すことなので、スペイン語でスキルを向上させる必要があります。 2.私はここにコードを入れる方法も知らないので。私はちょうど試みたが、何度も失敗した。
< - 消去しないでください。この - >
私の仕事であなたのアイデアを使用しようとします。 そして、もし私が問題を抱えたら、あなたに訂正を求めることができます。 しかし、私は確信していませんが、私は、更新のrawsを止めることができますが、私のidは "auto increment"で止めることができないと思います。私が間違っている? 私のコードを使用しましたか? – YelloWhale
タイムスタンプを使用する場合は、何もインクリメントする必要はありません。 ヌエボ保存、guardar ES新しいもののようにタイムスタンプが、私はいくつかのことを言うのを忘れて、年齢 – charlietfl
によって配列をソート可能になり、cargarは負荷がある、タブラは、テーブル、 で、私の関数名は以下のとおりです。 creartabla =のCreateTable、crear =作成、modificar編集のようなもので、eliminarは削除です – YelloWhale