Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Только не смейтесь я начинаю ) (https://javascript.ru/forum/project/70671-tolko-ne-smejjtes-ya-nachinayu.html)

avaj_24 24.09.2017 11:38

Только не смейтесь я начинаю )
 
function say (greet){
	
	
		return function (name){
			
			return greet + " " + name;
		};
	}
	
	var en = say ("Hello");
	document.write (en("Mike");
	document.write (en("Jon");


Не пойму где ошибка?

Rasy 24.09.2017 12:30

Цитата:

Сообщение от avaj_24
Не пойму где ошибка?

Синтаксическая
function say (greet){
	
	
		return function (name){
			
			return greet + " " + name;
		};
	}
	
	var en = say ("Hello");
*!*
	document.write (en("Mike");
	document.write (en("Jon");
*/!*

avaj_24 24.09.2017 12:33

Спасибо Rasy! Точно, скобка не подставилась...:)

koekto 18.10.2017 14:29

Скрипт навигации
 
Есть скрипт для навигации между страницами сайта:

var ss=[];
ss[1]="./";
ss[2]="biograf.php";
ss[3]="shema-rabot.php";
ss[4]="rezume.php";
ss[5]="otziv.php";
ss[6]="zakon.php";
ss[7]="diplom.php";
ss[8]="smi.php";
ss[9]="obraz_rabot.php";
ss[10]="pri4ini.php";

function start(a){
if(a!=1){document.getElementById("nk_n").href=ss[a-1];document.getElementById("n_kn").style.display=""}
if(a!=ss.length-1){document.getElementById("vk_n").href=ss[a-(-1)];document.getElementById("v_kn").style.display=""}
}

Допустим, я хочу увеличить количество страниц:

ss[11]="problemi-biznesa.php";

но на добавленной странице навигация работает уже не правильно. Более того, если добавляемую страницу надо добавить не в конец, а сделать её 2-й — если я просто переименую названия страниц таким образом:

ss[1]="./";
ss[2]="problemi-biznesa.php";
ss[3]="biograf.php";
ss[4]="shema-rabot.php";
ss[5]="rezume.php";
ss[6]="otziv.php";
ss[7]="zakon.php";
ss[8]="diplom.php";
ss[9]="smi.php";
ss[10]="obraz_rabot.php";
ss[11]="pri4ini.php";

в этом случае вся навигация между страницами начинает работать криво, переадресовывая через страницу.

Как сделать, чтобы навигация работала корректно при добавлении или изменении названия страниц?

laimas 18.10.2017 15:44

koekto,
таким подходом страничную навигацию не организовать.

koekto 19.10.2017 13:33

до сих пор всё работало, пока мне не понадобилось добавить страницы. Тогда объясните, как сделать правильно?

laimas 19.10.2017 14:47

Цитата:

Сообщение от koekto
Тогда объясните, как сделать правильно?

Сложно все это объяснить в двух словах. Если ваш сайт, это статичные страницы, на каждую которую есть свой файл обработчик - problemi-biznesa.php, biograf.php, ... и т.д., то страничную навигация в данном случае, это получить все файлы каталога и сделать на них ссылки. Это можно организовать просто - glob() и сформировать навигатор.

Но такая организация страниц, даже если они статичные, никуда не годится, а тем более "замусорить" таким образом корневой каталог не есть хорошо. Проблема еще в том, что ссылка в навигаторе должна содержать нечто удобочитаемое, а не имена файлов. Имена файлов, это в href атрибуте ссылок. Следовательно нужно иметь описания самих файлов.

В общей массе сайты имеют динамический контент, то есть один файл обработчик который запрашивается пользователем может обслуживать (отдавать пользователю) неограниченное количество страниц. Что за страница при этом будет отдана клиенту определяют параметры запроса этого файла (GET параметры).

Руководствуясь этими параметрами файл обработчик может подключать множество других файлов, делать соответствующие запросы к БД, получая из нее как содержание страниц так и их заголовки, SEO данные, подключает медиа данные, клиентские скрипты, css и т.п.

Если по параметрам запроса в БД объем данных более чем на определенное количество для одновременного вывода на страницу, в этом случае данные разбиваются на постраничный вывод, и на полученное количество страниц строится страничный навигатор. Все параметры для навигатора также будет определяться данными из БД.

Если ваши файлы, это разделы сайта, пусть они будут и отдельными для каждого такого раздела, если вам так удобно, но эти разделы должны быть описаны в базе, и это описание будет основой для формирования навигатора. Добавлять же нужно не новый файл, а изначально новый раздел в БД, описывая его, и только потом скрипт обработчик для этого раздела.

Rasy 19.10.2017 21:32

koekto,
Бери любую популярную цмску и смотри на реализацию в ядре.


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