Варианты сохранения массивов (из 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, время: 15:36. |