Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возможно-ли только силами JavaScript создать интернет-магазин? (https://javascript.ru/forum/misc/1211-vozmozhno-li-tolko-silami-javascript-sozdat-internet-magazin.html)

Forgott 07.05.2008 12:08

Возможно-ли только силами JavaScript создать интернет-магазин?
 
Доброго времени суток!
Решил вот попробовать свои силы в создании простенького интернет-магазина чисто для себя. Руку набить, так сказать. Что нужно? Чтобы товары добавлялись в корзину и заказ с данными о клиенте сохранялся на сервере. Все, в принципе. Знаю, что на PHP это вполне возможно. Но мне как-то Java больше приглянулась + раз начал ее уже изучать и что-то понимать, не вижу смысла бросать и браться за изучение PHP. Тем более, что он на мой взгляд более сложный со своими бесконечными инклюдами, хотя народ вовсю твердит, что он very easy.

Kolyaj 07.05.2008 12:18

Forgott, вы похоже что-то недопонимаете. JavaScript - клиентский язык, PHP - серверный, они не взаимозаменяемы, они взаимодополняемы. Не сделаете вы на JavaScript ничего, что касается сервера, в частности
Цитата:

Сообщение от Forgott
заказ с данными о клиенте сохранялся на сервере


Forgott 07.05.2008 12:20

Получается, что придется где-то код php вставлять, где-то js. Я так понимаю?

tenshi 07.05.2008 13:32

можно сделать сохранение корзины в куке и потом отправлять её на почту ^_^

Gvozd 07.05.2008 13:49

Цитата:

Сообщение от Forgott
народ вовсю твердит, что он very easy.

И правильно твердит. послушайте умных людей. у него конечно есть свои плюсы и минусы,но он был всегда довольно простым
ЗЫ советую автору разобратся, на чем он щас пишет.Java и JavaScript -- абсолютно разные языки, и между ними общего только 4 буквы, и ничего более

Kolyaj 07.05.2008 14:38

Цитата:

Сообщение от tenshi
потом отправлять её на почту

А на почту как отправлять?

Gvozd 07.05.2008 15:06

Цитата:

Сообщение от Kolyaj
А на почту как отправлять?

в поле action формы нада прописать мыло. тогда на него придет письмо с содержанием формы, в определенном формате. как-то так по моему, никогда не делал. подробней в гугл

Kolyaj 07.05.2008 15:33

Цитата:

Сообщение от Gvozd
в поле action формы нада прописать мыло. тогда на него придет письмо с содержанием формы, в определенном формате. как-то так по моему, никогда не делал. подробней в гугл

При этом откроется Outlook, которым мало кто сейчас пользуется.

Gvozd 07.05.2008 15:39

Цитата:

Сообщение от Kolyaj
При этом откроется Outlook, которым мало кто сейчас пользуется.

неправда. открывается мэйл-клиент по умолчанию.
Опера, например таковым считает сибя)))))
А в принципе, решение и вправду нах никому не нужное

Forgott 08.05.2008 10:09

Согласен, что при отсылке откроется почтовик по умолчанию. По крайней мере, на PHP можно все делать в обход и отправлять "на лету". Опять же минус js :( 2 Gvozd Я пишу на Java Script. Согласен, что Java и JavaScript - разные вещи. Просто очень не хочется после изучения js переходить на php, а тем более делать из них микс (боюсь, что мозги закипят). Тем более, есть куча вещей, которые меня бесят в php. А конкретно то, что php выполняется на серваке и тестить нужно, например, в том же Denwer, когда js можно протестить в любимом редакторе с ходу.

Kolyaj 08.05.2008 10:20

Forgott, что-то вы бред какой-то про PHP пишете. То вам файлы нужно на серваке сохранять, то не хочется тестить на серваке ничего. И чем вам не угодил то же Denwer?

Forgott 08.05.2008 10:26

Может и бред... Но мне кажется, что тестить js все же гораздо удобнее. Видимо все-таки придется к изучению php приступить :(

Kolyaj 08.05.2008 10:33

Цитата:

Сообщение от Forgott
Но мне кажется, что тестить js все же гораздо удобнее.

А чем удобнее-то? В простейшем случае в js для тестинга вставляются alert'ы, а в php - echo. А дебагеры и для php есть.

Forgott 08.05.2008 10:47

Согласен. Но почему я например из кода php не могу получить доступ скажем к свойствам document или window. Не подскажешь? Допустим, мне надо в js какое-то значение приравнять к document.formname.textname.value - нет проблем. Пытался такое же впихнуть в кусок кода php - ошибка в строке. Вот пример:

<?
$file = fopen("test.txt", "r");
$txtstr = fread($file, 50);
document.frmbox.txtbox.value = $txtstr;
?>


Ошибка! :( Т.е., я хотел считать строку из файла 'test.txt' и вставить ее в текстовое поле формы. Сейчас вот начал читать про php, но ничего конкретного не нахожу про это.

...А проще говоря мне надо, чтобы инфа из двух полей (имя, мыло) дописывалась в обычный текстовик в корне сервера.
Как все это выглядит понятно. Но вот как значения формы связать с php? Т.е., чтобы php записал в файл те переменные, что хранятся в text.value? Я вот чего-то не догоню никак.

Kolyaj 08.05.2008 11:53

Цитата:

Сообщение от Forgott
Вот пример:

<?
$file = fopen("test.txt", "r");
$txtstr = fread($file, 50);
?>
...
<input type="text" name="txtbox" value="<? echo $txtstr; ?>">


Цитата:

Сообщение от Forgott
Я вот чего-то не догоню никак.

PHP генерирует HTML, ничего более. Точно также он может и JavaScript генерировать. Да и картинки, pdf, ...

Forgott 08.05.2008 13:03

Прикольно! :) Слушай, а не подскажешь конкретный код, чтобы по нажатию кнопки данные из текстового поля дописывались в файл при помощи php? Если можно, то простенький, чтобы понятно было. Да... Видимо php мне придется учить ;) Кстати! Нет ссылки на понятную онлайн литературу по php для чайников вроде меня? Когда js начал учить, то нашел, а вот по php ничего такого найти не могу :(

Kolyaj 08.05.2008 14:32

<?php
if (array_key_exists('text', $_POST)) {
  $f = fopen('file.txt', 'a');
  fwrite($f, $_POST['text'] . "\n");
  fclose($f);
}
?>

<html>

<head>
  <title></title>
</head>

<body>
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
  <input type="text" name="text" value="">
  <input type="submit" value="Записать строчку">
</form>
</body>

</html>

Kolyaj 08.05.2008 14:33

Цитата:

Сообщение от Forgott
Когда js начал учить, то нашел, а вот по php ничего такого найти не могу

Обычно наоборот :)

Forgott 08.05.2008 14:35

Большое спасибо!

Forgott 10.05.2008 12:00

2 Kolyaj. Извиняюсь за назойливость, но все же осмелюсь еще попросить... А не мог бы ты дать php код, чтобы происходило следующее:
из трех текстовых полей (имя, мыло, сообщение) по нажатию на кнопку это данные дописывались в текстовый файл. Да, чтобы еще текущее время и дата записывались. Файл должен выглядить примерно так:

====================
10/05/2008 - 10:38
====================
Name : (то, что в поле имя)
Subj : (то, что в поле сообщение)
Mail : (то, что в поле мыло)

Знаю, что таких готовых скриптов куча, но... хотелось бы не громоздкий код, чтобы можно было разобраться. Да, и добавь, плиз, комменты, чтобы я больше не донимал своими распросами. Пытался сам сделать по твоему первому коду (добавить все это), но не догоню никак :( Заранее, большое спасибо!

Kolyaj 10.05.2008 12:09

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

Forgott 10.05.2008 12:41

Так все понятно, в принципе. Единственное, не помню как сделать перенос строки при записи в файл. А также, как записать значения из двух других строк. Пробовал поиграться с полем name, но видимо не то :( Добавил в твой код еще два текстовых поля, но записывается только последнее поле.

Gvozd 10.05.2008 12:42

Когда-то пользовался ресурсом http://myphp.net.ru для изучения PHP.
К сожалению его на данный момент нет, и выдает страничку хостинг-провайдера.
К счастью, у меня с незапамятных времен осталась подборка уроков оттуда, котрая прилагается к этой теме.
ЗЫ Из-зи технических ограничений фоума, запаковывал сначала в рар, разбитыйй на части, а затем в ЗИП

Forgott 10.05.2008 12:50

Спасибо, Gvozd!
Главное, чтобы уроки понятные чайнику типа меня были ;)

Gvozd 10.05.2008 12:51

Цитата:

Сообщение от Forgott
Единственное, не помню

По моему вы просто еще толком не изучали PHP, потому что это вопросы на уровне синтаксиса и простейших функций языка.
Перенос строки:
fwrite($f,"\n");//вот мы записали один перенос
/*
на самом деле переносом может быть любой из этих символов:
'\r' (MacOs), '\n' (*Nix), '\r\n' (Windows)
Все зависит от платформы выполнения
Но в принципе особой разницы нет. просто надо учитывать свой перенос как при хаписи, так и при чтении
*/

Записывать из двух других строк, это вобще элементарно
fwrite($f, $_POST['pole_1'] . "\n");
fwrite($f, $_POST['pole_2'] . "\n");
fwrite($f, $_POST['pole_3'] . "\n");
fwrite($f, $_POST['pole_4'] . "\n");

Gvozd 10.05.2008 12:57

что-то мы отклонились от тематики ветки. пора переходить в раздел серверные языки)))))
ЗЫ Forgott,как прочитаеш этот набор уроков, обращайся.
скину тебе еще документации, какой сам пользуюсь, + МОЖЕТ быть нарою каких-нибудь ресурсов для начинающих(это если конечно оно тебе нужно буде после прочтения первой документации)

Forgott 10.05.2008 13:17

Прикольно! Как я не догнал с переносом? Вот только я пробовал менять, как ты

fwrite(filename, string[int])
fwrite(filename, string[int])


...на разные (это я догнал). Но не вышло почему-то? Наверное где-то все-таки ошибся. А за помощь, спасибо!

Gvozd 10.05.2008 13:26

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

Forgott 10.05.2008 13:53

<?php
  $f = fopen('file.txt', 'a');
  fwrite($f, $_POST['pole1'] . "\n");
  fwrite($f, $_POST['pole2'] . "\n");
  fwrite($f, $_POST['pole3'] . "\n");
  fclose($f);
?>
 
<html>
 
<head>
  <title></title>
</head>
 
<body>
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
  <input type="text" name="pole1" value="">
  <input type="text" name="pole2" value="">
  <input type="text" name="pole3" value="">
  <input type="submit" value="Записать строчку">
</form>
</body>
 
</html>


Все теперь работает, но только скрипт выполняется сразу и файл также сразу создается без нажатия на кнопку. Я так понимаю, с if надо поэкспериментировать ;) Я его просто убрал из кода, который мне Kolyaj прислал.

Forgott 10.05.2008 13:55

Догадываюсь, что надо так делать:

if (array_key_exists('pole1', $_POST)) {
if (array_key_exists('pole2', $_POST)) {
if (array_key_exists('pole3', $_POST)) {
...
}}}


Пробовал - не то. Файл опять же сразу создается :(

Gvozd 10.05.2008 14:21

По идее все ты правильно написал.
Еслм в первый раз заходиш на страницу, то файл не должен создаватся.
попробуй перезайти в браузер.может поможет.
А так я ХЗ.
ЗЫ. в расширенном редактировании есть кнопочка для вставки JS-кода. Просьба пользоватся, так реально удобнее читать

wufer 23.06.2009 20:41

Цитата:

Сообщение от Forgott (Сообщение 2332)
Доброго времени суток!
Решил вот попробовать свои силы в создании простенького интернет-магазина чисто для себя. Руку

короче не мучаться и пойти сюда и скачать себе магшазин с отличной админкой и т.д.

MihailB 14.12.2010 12:39

чтобы руку набить посмотри по функциям и пытайся реализовать... просто пробуй. что получится - значит можно. с чем будут проблемы - обращайся подскажем, если не выйдет общими силами - значит не получится реализовать только javascript'ом и надо либо подключать кого-то еще для программинга, советую агентство, качественно реализуют создание интернет-магазина... ну и как вариант выше попробовать поюзать готовую cms для магаза!

Alexis89 10.04.2016 10:27

У кого-то нормальный есть скрипт магазина-одностраничника на Ajax?

nerooren21 22.08.2016 15:25

это же сколько нужно временных затрат на разработку такого сайта? ява же преимущественно для backend, верно? именно сочетание нескольких языков позволит вам создать интернет-магазин. на одном ява не уедете далеко, только на стороне сервера останетесь и все

Bond 23.08.2016 02:58

Коль не хотите на PHP пилить, а все силами JS сделать - можно конечно. К примеру бекэнд на NodeJS запилить.
Только вот что будет меньше инклюдов не гарантирую )) И что меньше учить надо будет тоже нет гарантий - хотя, хз в ноду быстро можно въехать особенно на небольшие проекты типа простенького магаза.

DivMan 23.08.2016 07:57

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


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