Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Jquery 在本地存储保存函数中,也将变量传递给MySQL数据库_Jquery_Mysql_Json_Local Storage - Fatal编程技术网

Jquery 在本地存储保存函数中,也将变量传递给MySQL数据库

Jquery 在本地存储保存函数中,也将变量传递给MySQL数据库,jquery,mysql,json,local-storage,Jquery,Mysql,Json,Local Storage,我有一个脚本,每个用户都可以对每个可用的小部件(id、样式、位置等)进行个性化设置,并将其更改保存到HTML5本地存储中-但我还想将这些变量传递到MySQL db,因此,如果用户从不同的浏览器访问站点,他们不必从头开始重新安排所有内容,但是,如果本地存储为空,则会从MySQL数据库中提取以前设置的变量 我不知道如何将这3个变量从localstorage save上的JS文件传递到MySQL db 我想我应该从Ajax调用PHP查询文件,但不确定如何调用 //** SAVE SETTINGS FU

我有一个脚本,每个用户都可以对每个可用的小部件(id、样式、位置等)进行个性化设置,并将其更改保存到HTML5本地存储中-但我还想将这些变量传递到MySQL db,因此,如果用户从不同的浏览器访问站点,他们不必从头开始重新安排所有内容,但是,如果本地存储为空,则会从MySQL数据库中提取以前设置的变量

我不知道如何将这3个变量从localstorage save上的JS文件传递到MySQL db

我想我应该从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);
以及如何

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


谢谢你,是的,阿贾克斯。如果您使用的是框架(jquery),那么web上有很多教程。也许开始吧