Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма с выбором и PHP 
V
    Опции темы
NetFlame
Дата 23.10.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.3.2006
Где: Москва

Репутация: нет
Всего: нет



Здравствуйте!

Проблема: мне нужна форма, в которой 3 радио-кнопки с разными названиями + кнопка подтверждения. При нажатии кнопки подтверждения должны записываться определенные куки с разным содержанием ( в зависимости от радио-кнопки, которую пользователь выберет ) и редиректировать его на определенную страницу ( в зависимости от радио-кнопки, которую пользователь выберет ). И в будущем при заходе на эту страницу, пользователя будет автоматически редиректировать на ту страницу.
Со скриптом проверки и редиректа на страницу я разобрался. Вот он

Код

var expDays = 30;
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function getCookieVal (offset) { 
var endstr = document.cookie.indexOf (";", offset); 
if (endstr == -1) 
endstr = document.cookie.length; 
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) { 
var arg = name + "="; 
var alen = arg.length; 
var clen = document.cookie.length; 
var i = 0; 
while (i < clen) { 
var j = i + alen; 
if (document.cookie.substring(i, j) == arg) 
return getCookieVal (j); 
i = document.cookie.indexOf(" ", i) + 1; 
if (i == 0) break; 

return null;
}
function SetCookie (name, value) { 
var argv = SetCookie.arguments; 
var argc = SetCookie.arguments.length; 
var expires = (argc > 2) ? argv[2] : null; 
var path = (argc > 3) ? argv[3] : null; 
var domain = (argc > 4) ? argv[4] : null; 
var secure = (argc > 5) ? argv[5] : false; 
document.cookie = name + "=" + escape (value) + 
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
((path == null) ? "" : ("; path=" + path)) + 
((domain == null) ? "" : ("; domain=" + domain)) + 
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) { 
var exp = new Date(); 
exp.setTime (exp.getTime() - 1); 
var cval = GetCookie (name); 
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

var favorite = GetCookie('choise');

if (favorite != null) {
switch (favorite) {
case 'global' : url = 'http://global.ru/';
break;
case 'maist' : url = 'http://maist.ru'; 
break;
case 'gravia' : url = 'http://gravia.ru';
}
window.location.href = url;
}


А вот насчет формы....Не получается... В принцепе нет разницы, какими по типу будут выборы ( radio, checkbox или прочими ).
Но ту форму, которую я сделал, она не работает  smile  Скорее всего, потому что не знаю каких-то нюансов про php....
Были такие намётки

Код

<form>
<table><tr><td>
<input type=checkbox name="global" onClick="SetCookie(''choise'', this.name, exp);">Глобальный<br>
<input type=checkbox name="maist" onClick="SetCookie(''choise'', this.name, exp);">МАИ<br>
<input type=checkbox name="gravia" onClick="SetCookie(''choise'', this.name, exp);">МГТУГА<br>
</td></tr>
</table>
</form>


Но не работает. И редиректа с кнопкой там нету...
Хелп, плиз!

PM MAIL WWW ICQ   Вверх
xolod
Дата 23.10.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 24.5.2005
Где: Когда: Что:

Репутация: 4
Всего: 13



Почему choise в четырех (''choise'') апострофах? Что такое exp третьим параметром? Значения не вижу.
Ну да не суть. Главный вопрос — каким образом клиентский JavaScript относится к PHP?
PM MAIL   Вверх
bondarenko_a
Дата 23.10.2006, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 20.9.2006
Где: Kiev

Репутация: 1
Всего: 1



Я тоже пыталась отыскать здесь пыхып и не нашла.
PM MAIL   Вверх
NetFlame
Дата 23.10.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.3.2006
Где: Москва

Репутация: нет
Всего: нет



xolod, exp - срок действия куки. А последний код - это попытка написания формы!!!! Я и задал вопрос, чего неправильного и как надо сделать, учитывая, что должно быть написано на php  smile 
PM MAIL WWW ICQ   Вверх
xolod
Дата 23.10.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 24.5.2005
Где: Когда: Что:

Репутация: 4
Всего: 13



Да я по контексту понял, что exp — срок. Но какое значение то у него? Так и пишем exp?
В вашем коде нет php. И не может быть. Сейчас вы все делаете клиентским JavaScript.
Чтобы установить куку на php, в форме должен быть обработчик и метод передачи (<form action="somephpfile.php" method="post">).

Я приведу код на php и если вы, запустив его, ничего не поймете, вам стоит прочитать книжку, либо статью по php для начинающих. На этом сайте очень много хороших материалов.
Код

<?php

  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    setcookie('choise', $_POST['redir']);
    echo('Кука установлена.');
  } else {
    echo('<form action='.$_SERVER['PHP_SELF'].' method="post">
          <table><tr><td>
          <input type="radio" name="redir" value="global">Глобальный<br>
          <input type="radio" name="redir" value="maist">МАИ<br>
          <input type="radio" name="redir" value="gravia">МГТУГА<br>
          <input type="submit" value="Отправить" />
          </td></tr>
          </table>
          </form>
        ');
  }

?>


На мой взгляд вы не видите различия в php (исполняемом на сервере) и js (на клиенте), а не "Скорее всего, потому что не знаю каких-то нюансов про php...."
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0823 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.