mysql的数据是存到本地_在本地存储保存功能上,也将变量传递给MySQL数据库

我有这个脚本,每个用户都能够个性化每个可用的小部件(id,样式,位置......),并且他们的更改被保存到HTML5本地存储 - 但我也想将这些变量传递给MySQL db,所以如果一个人从不同的浏览器访问站点,他们不必从头开始重新排列所有内容,但如果本地存储空了,那些先前设置的变量将从MySQL数据库中提取 .

我不知道如何在localstorage save上从JS文件将这3个变量传递给MySQL数据库 .

我应该从Ajax调用PHP查询文件,但不知道如何 .

//** SAVE SETTINGS FUNCTION **//

function saveSettingsWidget(){

if(localStorage && o_localStorage){

var storeSettings = [];

obj.find(o_widgetClass).each(function(){

var storeSettingsStr = {};

storeSettingsStr['id'] = $(this).attr('id');

storeSettingsStr['style'] = $(this).attr('data-attstyle');

storeSettingsStr['hidden'] = ($(this).is(':hidden') ? 1 : 0);

storeSettings.push(storeSettingsStr);

});

var storeSettingsObj = JSON.stringify( {'widget':storeSettings} );

/* Place it in the storage(only if needed) */

if(getKeySettings != storeSettingsObj){

localStorage.setItem(keySettings, storeSettingsObj);

}

}

}

更新:

好的,所以我设法用Ajax调用PHP(带插入和更新查询),一切正常,MySQL db更新所有值 .

现在,意图是在本地存储为空时调用这些值 .

我创建了一个PHP查询,它输出的值与存储它们的本地存储完全相同:

$query = "SELECT id , position , color , title , hidden , collapsed FROM mod_pos ORDER BY `position` ASC";

if($result = mysql_query($query))

{

// fetch data

while ($row = mysql_fetch_assoc($result))

{

$row_set[] = $row;

}

// set the output

$jsonsettings = json_encode($row_set);

}

$json='{"widget":' .$jsonsettings. '}' ;

echo $json;

所以输出是

{"widget":[{"id":"widget1-42","position":"0","color":"default","title":"Title1","hidden":"0","collapsed":"0"},{"id":"widget5-42","position":"1","color":"default","title":"Title5","hidden":"1","collapsed":"0"}]}

现在 - 如果我的本地存储是空的,我想要通过我假设解析这些保存的值:

var url = "url-to-php-file-with-json-output.php"

$.getJSON(url,function(json){ });

但是我在哪里做...

在JS文件中有一个部分,其中设置了键:

if(localStorage && o_localStorage) // this is if localStorage is enabled and there are values in browser's local storage

{

var keySettings = 'widgets_settings_'+location.pathname+'_'+objId;

var getKeySettings = localStorage.getItem(keySettings);

}

我应该放一个

else { $.getJSON ...}

在这里,我应该以不同的方式定义键,因为通过查看:

var keySettings = 'widgets_settings_'+location.pathname+'_'+objId;

这是本地存储的标识符 - 它取代了实际输出,这与新的数据源无关,现在是mysql输出 .

或者我应该跳过该部分,而是在此处指定:

if(localStorage && o_localStorage && getKeySettings){

var jsonSettings = JSON.parse(getKeySettings);

如何...

我知道这对某些人来说肯定是一个完全荒谬的问题,但如果可能的话,我会非常感谢你提供更详细的帮助 .

万万感谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值