Варианты сохранения массивов (из js) на сервере?
прямо в html-файле (как) либо в другом файле – как это делается? для последующего использования.
|
можно сохранить в localstorage или через ajax передать на сервер
|
а если сохранять в html-странице – она изменяется только на стороне клиента да..
|
Всё просто и в то же время сложно
Для того, что бы сохранять массив на сервер нужно знать один из языков программирования BackEnd (php например) и сохранять или в DB (MySQL, MSSQL и т.д.) или в файл писать. Если хранить в localStorage (в приложении "Поиск по AVITO.RU" :victory: Именно так хранится часть данных, а часть уходит на мой сервер по средствам $.getJSON) - это будет храниться только у клиента. Вариантов, на самом деле, много. Вопрос только в том - какой больше подходит.
|
А так, хранить данные прямо в HTML - плохая идея. Лучше изучи php (это проще всего будет) и сделай, хотя бы примитивную, серверную часть. На хабре есть много готовых примеров применения AJAX'a с готовой серверной частью. Мб и тут есть, я не знаю))))
|
да мне для примитивной задачи, не думал что всё сложновато, готовые решения бы найти)
пока думаю сохранять данные вручную редактируя js, хотя через браузер было бы человечней..) |
можно перекинуть как JSON в XML строку через консоль используя парсеры. Строку копировать в xml файл и с xml файла потом загружать назад по необходимость.
http://braincast.nl/samples/jsoneditor/js/xml2json.js перекидывает xml в json http://goessner.net/download/prj/jsonxml/json2xml.js перекидывает json в xml В самой проге парсеры работаю просто до ужаса var newObj= loadXML_To_String("xml/myfile.xml")//создаёт массив или объект var test = json2xml(someObj); //создаёт отфарматированный под xml streeng console.log(test);//выдаёт её в консоли либо как советовал caetus, закидывать на localstorage код с http://stackoverflow.com/questions/2...5-localstorage var testObject = { 'one': 1, 'two': 2, 'three': 3 }; // Put the object into storage localStorage.setItem('testObject', JSON.stringify(testObject)); // Retrieve the object from storage var retrievedObject = localStorage.getItem('testObject'); console.log('retrievedObject: ', JSON.parse(retrievedObject)); |
Тебе ныжны 3 файла. inpex.php, myfunc.js и myscript.php
Создаёш базу данных MySQL с именем, наприме, mydb, пользователя к ней с логином mylogin и паролем mypassword. В ней создаешь таблицу mytable с полями id (INT) (auto_increment), input1 (text 256 символов), input2 (text 256 символов), input3 (text 256 символов) Твой HTML в index.php: <? $conf['db_host'] = "localhost"; $conf['db_login'] = "mylogin"; $conf['db_password'] = "mypassword"; $conf['db_name'] = "mydb"; $sql = mysql_connect($conf['db_host'], $conf['db_login'], $conf['db_password']); if (!$sql) { die('{"error":"Ошибка соединения: ' . mysql_error().'"}'); } mysql_select_db($conf['db_name'], $sql) or die('{"error":"База данных не отвечает..."}'); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Документ без названия</title> <script src="http://yastatic.net/jquery/2.1.3/jquery.min.js"></script><!-- Подключаем jQuery --> <script src="myfunc.js"></script><!-- Подключаем свой скрипт JS --> </head> <body> <input type="text" id="id1" value=""><br> <input type="text" id="id1" value=""><br> <input type="text" id="id1" value=""><br> <a id="knopka">Отправить данные</a> <div> <? $result = mysql_query("SELECT * FROM `mytable`",$sql); $rows = mysql_num_rows($result); if($rows > 0) { while ($row = mysql_fetch_assoc($result)) { echo'Значение полч input1:'.$row['input1'].', значение полч input2:'.$row['input2'].', значение полч input3:'.$row['input3'].'<br>'; } } else { echo'База данных пуста'; } ?> </div> </body> </html> Содержимое myfunc.js $('a#knopka').click(function(e) {//Обработка нажатия на <a id="knopka">Отправить данные</a> var val1 = $('input#id1').val();//Получаем данные из поля <input type="text" id="id1" value=""> var val2 = $('input#id2').val();//Получаем данные из поля <input type="text" id="id2" value=""> var val3 = $('input#id3').val();//Получаем данные из поля <input type="text" id="id3" value=""> $.getJSON( "http://youdomine.com/myscript.php", { var1: val1, var2: val2, var3: val3 } ) .done(function( json ) { /*Обработка ответа он script.php*/ alert(json.messange); }) .fail(function( jqxhr, textStatus, error ) { /*Это обработка ошибки передачи данных, если она случилась*/ var err = textStatus + ", " + error; console.log( "Request Failed: " + err ); }); }); Содержимое myscript.php: <? /* Здесь мы получем 3 переданных перемера по их именам, а именно $_GET['var1'], $_GET['var2'], $_GET['var3']*/ $conf['db_host'] = "localhost"; $conf['db_login'] = "mylogin"; $conf['db_password'] = "mypassword"; $conf['db_name'] = "mydb"; $sql = mysql_connect($conf['db_host'], $conf['db_login'], $conf['db_password']); if (!$sql) { die('{"error":"Ошибка соединения: ' . mysql_error().'"}'); } mysql_select_db($conf['db_name'], $sql) or die('{"error":"База данных не отвечает..."}'); mysql_query("INSERT INTO `mytable`(`input1`,`input2`,`input3`) VALUES ('".$_GET['var1']."','".$_GET['var2']."','".$_GET['var3']."')",$sql);// echo'{"status":"200","messange":"Данные добавлены в Базу Данных"}'; mysql_close($sql); ?> |
|
Часовой пояс GMT +3, время: 19:50. |