[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Датчик полной прокрутки страницы
Владимир55
Вот здесь есть скрипт всплывающей формы подписки, которая появляется на экране тогда, когда посетитель полностью прокрутил страницу вниз.

Можно ли этот факт передать на сервер?

Например, чтобы в некoем РНР файле control.php сформировалась переменная
$control = "yes";
Kusss
$.fn.openWindow = function() {
// как открылось окно, пропиши тут запрос на сервер
var el = $(this);

Примерно так
$.post('control.php', {'open' : 1});

и принимай в фале $_POST['open']
Владимир55
Что-то я не догоняю...

Вот работающий скрипт:

		<script type="text/javascript">
$(document).ready( function() {
$(".subscribe-me").subscribeBetter();
});
</script>


А вот окно, которое он открывает:
					<div class="subscribe-me">
<h2>
Подписка на обновления</h2>
<a
href="#close" class="sb-close-btn">x</a>
<p>
Получайте самые последние новости на свой e-mail</p>
<form>
<input
type="email" placeholder="Email адрес">
<input
type="submit" value="Получать">
</form>
</div>


Как встроить Ваши дополнения?
Kusss
js скрипт находиться в этом файле
http://www.sitehere.ru/examples/09.09.2014...cribe-better.js
Владимир55
Сейчас этот фрагмент выглядит так:

    $.fn.openWindow = function() {
var el = $(this);
if(el.is(":hidden") && shown == false && animating == false) {
animating = true;


А нужно так?
    $.fn.openWindow = function() {
$.post('control.php', {'open' : 1});
var el = $(this);
if(el.is(":hidden") && shown == false && animating == false) {
animating = true;

Владимир55
Заработало, спасибо!
Владимир55
Порадовался я рановато...

На макете работает хорошо, а на сайте не хочет. Причина ясна - я неверно подключаю РНР-файл.

Скрипт стоит на каждой странице сайта и его элементы вызываются так.

JS находится в папке my-js и вызывается
<script type="text/javascript" src="/my-js/jquery.subscribe-better.js"></script>


А файл control.php находится в папке my-files и в скрипте я его вызов прописал так:
$.post('/my-files/control.php', {'open' : 101});


А в файле control.php такой код:

<?php
header("Content-type: text/html; charset=utf-8");

$open = $_POST['open'];

$date = date("H-i-s" );
file_put_contents($date . ".txt", $open);

И создаваемого текстового файла я найти не могу.

Что здесь нужно исправить?
Владимир55
Детальное изучение ситуации показало, что проблема вот в чем.

Скрипт успешно вызывается из любой страницы, поскольку его адрес установлен о корня:
<script type="text/javascript" src="/my-js/jquery.subscribe-better.js"></script>


Но в скрипте есть оператор:
$.post('my-files/control.php', {'open' : 101});


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

Эта проблема имеет решение?
Kusss
укажи полный путь к файлу, от корня.
'/my-files/control.php'
Владимир55
Цитата
укажи полный путь к файлу, от корня.
'/my-files/control.php'


Я с этого и начал. Но в том-то и дело, что скрипт с такой адресацией не работает в принципе!

Вот смотрите.

В файле файле control.php я записал:
header("Content-type: text/html; charset=utf-8");

$open = $_POST['open'];

file_put_contents("1.txt", date("H-i-s" ));


В скрипте http://fh7929mi.bget.ru/test/index.html установлен абсолютный адрес
$.post('my-files/control.php', {'open' : 101}); 

В файле по адресу http://fh7929mi.bget.ru/test/my-files/1.txt Вы можете увидеть, что записалось время вызова страницы.

А в скрипте http://fh7929mi.bget.ru/test/index-new.html установлен адрес от корня
$.post('/my-files/control.php', {'open' : 101});


И этот скрипт не работает.

Имеет ли эта проблема решение?
sergeiss
Полный путь - это http://fh7929mi.bget.ru/test/my-files/control.php
Как его сформировать динамически, вне зависимости от "глубины вложения", это другой вопрос. Задача решаемая, причем весьма легко smile.gif

PS. Посмотри в отладчике браузера, на закладке "Сеть", куда у тебя уходит твой запрос, по какому адресу.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
kaww
Цитата (Владимир55 @ 18.02.2016 - 07:15)
Имеет ли эта проблема решение?

Смотри свой .htaccess или настройки хоста. Т.к.
Request URL:http://fh7929mi.bget.ru/my-files/control.php
Request Method:POST
Status Code:301 Moved Permanently
Remote Address:91.106.207.14:80
Location: /my-files/control.php/

Т.е. у тебя там редирект на http://fh7929mi.bget.ru/my-files/control.php/
Владимир55
Похоже, что это выше моего понимания на два порядка...
Владимир55
Может быть, путь прописать так:

$.post('http://fh7929mi.bget.ru/my-files/control.php', {'open' : 101});


Вроде бы, работает.

Но корректно ли это?
kaww
Не обратил внимания сразу, что скрипт находится в test/. Правильно будет:
$.post('/test/my-files/control.php', {'open' : 101});
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.