Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确保数据不会在使用PHP Cookie刷新页面时丢失_Javascript_Php_Jquery_Mysql_Cookies - Fatal编程技术网

Javascript 如何确保数据不会在使用PHP Cookie刷新页面时丢失

Javascript 如何确保数据不会在使用PHP Cookie刷新页面时丢失,javascript,php,jquery,mysql,cookies,Javascript,Php,Jquery,Mysql,Cookies,我正在尝试创建一个动态表单,并将其保存到MySQL数据库中。我想做的是在页面上有这么多动态行,但要保存字段中键入的信息,以存储在PHP会话中,如果页面刷新,该会话将保留数据,等等 我不知道如何将数据存储在PHP会话中,任何帮助都将不胜感激 //添加额外的表行 变量i=$('tr')。长度; $(“.addmore”)。在('click',function()上{ html=''; html+=''; html+=''; html+=''; html+=''; html+=''; html+='

我正在尝试创建一个动态表单,并将其保存到MySQL数据库中。我想做的是在页面上有这么多动态行,但要保存字段中键入的信息,以存储在PHP会话中,如果页面刷新,该会话将保留数据,等等

我不知道如何将数据存储在PHP会话中,任何帮助都将不胜感激

//添加额外的表行
变量i=$('tr')。长度;
$(“.addmore”)。在('click',function()上{
html='';
html+='';
html+='';
html+='';
html+='';
html+='';
html+='';
$('table').append(html);
i++;
});
//选中所有复选框
$(文档)。在('change','check#u all',函数()上{
$('input[class=case]:checkbox').prop(“checked”,$(this).is(':checked'));
});
//删除选定的表行
$(“.delete”)。在('click',function()上{
$('.case:checkbox:checked').parents(“tr”).remove();
$('check#u all').prop(“checked”,false);
更新();
});
变量calcObject={
默认值:“0.00”,
小计:0,
税率:20,
运行:功能(obj){
obj.live(“更改键控模糊”,功能(e){
calcObject.subTotal=0;
var thisQty=jQuery.find('.qty');
每个(thisQty,函数(){
var thisQty=$(this.val();
var thisPrice=$(this.closest('tr').find('.price').val();
if(calcObject.isNumber(ThisQuantity)和&calcObject.isNumber(thisPrice)){
var thisSubTotal=(parseFloat(ThisQuantity)*parseFloat(thisPrice)).toFixed(2);
$(this).closest('tr').find('.linetotal').val(thisSubTotal);
calcObject.subTotal+=parseFloat(thisSubTotal);
}否则{
$(this).closest('tr').find('.linetotal').val(calcObject.defaultValue);
}
});
calcObject.update();
});
},
isNumber:函数(numb){
return!isNaN(parseFloat(numb))和&isFinite(numb);
},
更新:函数(){
if(calcObject.isNumber(calcObject.subTotal)和&calcObject.isNumber(calcObject.vatRate)){
var thisVat=((parseFloat(calcObject.subTotal)/100)*parseFloat(calcObject.vatRate)).toFixed(2);
var thisTotal=parseFloat(parseFloat(calcObject.subTotal)+parseFloat(thisVat)).toFixed(2);
$(“#小计”).val(parseFloat(calcObject.subtotal).toFixed(2));
$('增值税').val(本增值税);
$('总计').val(总计);
}
}
};
函数add(){
document.getElementById('wrapper').innerHTML+='

'; sessionStorage.inputboxs=document.getElementById('wrapper').innerHTML; } window.load=函数(){ if(会话存储.输入框){ document.getElementById('wrapper').innerHTML=sessionStorage.InputBox; } }; $(函数(){ calcObject.run($('.trigger')); });
*{
保证金:0;
填充:0;
边界:无;
列表样式:无;
字号:100;
颜色:#333;
}
身体{
字体系列:Arial,Verdana,无衬线;
字体大小:12px;
文本对齐:居中;
填充:20px0;
}
#包装纸{
文本对齐:左对齐;
宽度:800px;
保证金:0自动;
}
史密斯博士{
填充:3倍;
边框:实心1px#aaa;
}
th,td{
文本对齐:左对齐;
垂直对齐:顶部;
边框底部:虚线1px#aaa;
填充:7px 10px;
}
.btn{
填充:6px 18px;
颜色:#fff;
背景:#222;
光标:指针;
}
戴夫先生{
高度:14px
}
上校1{
宽度:1%;
空白:nowrap;
}
.col_15{宽度:65%}
.col_5{宽度:5%}
.ta_r,th.ta_r,.td.ta_r{text align:right}
.按钮成功{
填充:8px 18px;
颜色:#fff;
背景:#0C3;
光标:指针;
}
.按钮危险{
左侧填充:20px;
填充:8px28px;
颜色:#fff;
背景:#F00;
光标:指针;
}
.form inline.form组{
边缘底部:20px;
浮动:对;
}
/**海关CSS**/
.field_大{
宽度:450px;
}
.field_small{
宽度:50px;
}
.总数{
宽度:40%;
浮动:对;
边缘顶部:50px;
}

发票表格
 
产品名称
数量
价格
小计
 
+添加更多
-删除
 
小计:
大桶:
总数:

请不要使用会话。如此多的动态行在会话中需要如此多的字节(或cookies,根据这个问题的标题),这是不推荐的。此外,Cookie支持有限的数据(~4KB)。保持你的会议干净整洁。考虑其他方法,比如LoalStalk、索引XDB等,这会更快。没有尝试过,但是我想如果你有一个下拉项目,你可以使用jQuery函数,它每次都会触发这个项目被更改,那个特定的时间你可以把它存储在一个会话中。谢谢你的回复,我将不得不重新了解情况并尝试其他方法。也许每次按下addrow按钮时,数据都会使用jQuery和Ajax保存到MySQL数据库中。我认为这种方法可能更好,尤其是在计算方面。非常感谢。