Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Варианты сохранения массивов (из js) на сервере? (https://javascript.ru/forum/misc/52935-varianty-sokhraneniya-massivov-iz-js-na-servere.html)

romm 13.01.2015 20:56

Варианты сохранения массивов (из js) на сервере?
 
прямо в html-файле (как) либо в другом файле – как это делается? для последующего использования.

caetus 13.01.2015 23:26

можно сохранить в localstorage или через ajax передать на сервер

romm 14.01.2015 07:23

а если сохранять в html-странице – она изменяется только на стороне клиента да..

krisdh 14.01.2015 12:39

Всё просто и в то же время сложно
 
Для того, что бы сохранять массив на сервер нужно знать один из языков программирования BackEnd (php например) и сохранять или в DB (MySQL, MSSQL и т.д.) или в файл писать. Если хранить в localStorage (в приложении "Поиск по AVITO.RU" :victory: Именно так хранится часть данных, а часть уходит на мой сервер по средствам $.getJSON) - это будет храниться только у клиента. Вариантов, на самом деле, много. Вопрос только в том - какой больше подходит.

krisdh 14.01.2015 12:41

А так, хранить данные прямо в HTML - плохая идея. Лучше изучи php (это проще всего будет) и сделай, хотя бы примитивную, серверную часть. На хабре есть много готовых примеров применения AJAX'a с готовой серверной частью. Мб и тут есть, я не знаю))))

romm 16.01.2015 16:28

да мне для примитивной задачи, не думал что всё сложновато, готовые решения бы найти)
пока думаю сохранять данные вручную редактируя js, хотя через браузер было бы человечней..)

Noobloid 16.01.2015 21:02

можно перекинуть как 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));

krisdh 17.01.2015 12:25

Тебе ныжны 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);
?>

Erolast 17.01.2015 14:08

http://learn.javascript.ru/intro#%D1...%82-javascript
http://habrahabr.ru/post/148151/


Часовой пояс GMT +3, время: 19:50.