Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.03.2009, 12:28
Интересующийся
Отправить личное сообщение для glutton Посмотреть профиль Найти все сообщения от glutton
 
Регистрация: 26.03.2009
Сообщений: 25

Как передать значение узла методом GET во фрейм ??
Здравствуйте! Прошу помощи...
Не могу заставить работать такую вот задумку:


требуется передать текст из ячейки таблицы в переменную PHP для страницы в IFRAME
т.е. сформировать вот такую конструкцию:
<form target=FrameName action="../basket_preview.php?k=1&PHPSESSID=...>
Чтоб потом поймать переменную "k" в виде $_GET['k'] на странице basket_preview.php


Проблема: в явном виде такая конструкци работает - если просто прописать её так как есть. - То есть с этой стороны подвоха нет. - НО! Как только пытаюсь сформировать эту строку динамически, - всё -отбой.

Имеется страница с ценой и выбором количества товара (убрал все лишнее):
<FORM METHOD=POST TARGET=FrameName
ACTION="javascript:AddGoods(document.getElementByID('kol').firstChild.nodeValue)">
<!-- вот эта часть (выше) не срабатывает-->
<table>
  <tr>
     <td ID="kol">
        <!-- это значение и требуется передать методом GET -->
        1
    </td>
  </tr>
</table>

<INPUT TYPE=HIDDEN NAME=tsena VALUE=<?echo $tsena?>>
<INPUT TITLE="В корзину" TYPE=IMAGE NAME=tocart SRC=cart.gif>
</FORM>


Вот описание функции для формирования строки:
<script type="text/javascript">
<!--
function AddGoods(k) {
	var x1="../basket_preview.php?k=";
	var x2=k;
	var x3="&PHPSESSID=";
	var x4="<?echo session_id()?>";
	location.href=x1+x2+x3+x4;
}
//-->
</script>


Так значение должно приниматься другой страницей, которая отображается в IFRAME name=FrameName:

if ( isset($_POST['tocart_x']) )  
{
	$line=array();
	$line['kol']=$_GET['k']; 
	$_SESSION['summa'] += $_POST['tsena']*$_GET['k'];
}


В итоге при нажати на кнопку "В корзину" ровным счетом ничего не происходит... - $_GET['k'] - пустая...

Заранее спасибо!

Последний раз редактировалось glutton, 26.03.2009 в 14:01.
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2009, 12:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

неправильно:
document.getElementByID('kol').firstChild.nodeValue

правильно:
document.getElementByID('kol').innerHTML
Ответить с цитированием
  #3 (permalink)  
Старый 26.03.2009, 12:42
Интересующийся
Отправить личное сообщение для glutton Посмотреть профиль Найти все сообщения от glutton
 
Регистрация: 26.03.2009
Сообщений: 25

А мне ведь только цифру из ячейки передать надо. Тогда ведь не нужен innerHTML - ? Или я что-то не понимаю..
(сорри, я комментарий, наверное, выше чем требуется поставил)
Ответить с цитированием
  #4 (permalink)  
Старый 26.03.2009, 12:51
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

ну, так приведите к числу.
можно JS-ом, можно PHP
на ыоруме можно редактировать сообщения.
исправьте свое сообщение как вы считаете правильным.
PS ваша конструкция ничего дополнительного не даст, потому что у вас там только одна текстовая нода
PPS протупил с вашей функцией.она в принципе правильная.и вроде даже кросбраузерная.но ничего дополнительного она не даст по сравнению с innerHTML.более того, если у вас там окажутся "лишние" ноды(некоторые браузеры этим страдают), то работать перестанет

Последний раз редактировалось Gvozd, 26.03.2009 в 12:56.
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2009, 13:06
Интересующийся
Отправить личное сообщение для glutton Посмотреть профиль Найти все сообщения от glutton
 
Регистрация: 26.03.2009
Сообщений: 25

Сообщение от Gvozd Посмотреть сообщение
ну, так приведите к числу.
можно JS-ом, можно PHP
Дело в том, что у меня прекрасно работает вот такая штука:

<td
onClick="ChangeKol('m',document.getElementById('kol').firstChild.nodeValue)">
  -
</td>

function ChangeKol(str,k) {
	if ("m" != str)
		{
		k++;
		document.getElementById('kol').firstChild.nodeValue=k;
		}
	else 
		{
		if (k > 1) {
			k=k-1;
			document.getElementById('kol').firstChild.nodeValue=k;
			}
		else return false;
		}
}


А вот строка для передачи не формируется..
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2009, 13:18
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

вы забыли закрывающую фигурную скобку в функции
Ответить с цитированием
  #7 (permalink)  
Старый 26.03.2009, 13:28
Интересующийся
Отправить личное сообщение для glutton Посмотреть профиль Найти все сообщения от glutton
 
Регистрация: 26.03.2009
Сообщений: 25

Добавил, спасибо.. Я ее уже после 1000-ной переделки кода потерял, наверное, все равно ничего не происходит...
При наведении мышки на кнопку "В корзину" в статусной строке отображается:
javascript:AddGoods(document.getElementByID('kol') .firstChild.nodeValue)

а должно, как я понимаю, отображаться, например:
javascript:AddGoods(1)
Ответить с цитированием
  #8 (permalink)  
Старый 26.03.2009, 13:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

нет, не должно.
более того, ябы вам посоветовал воздержатся от применения псевдопротокола javascript:
тем более в ACTION формы
тут можно отлично обойтись без него
Ответить с цитированием
  #9 (permalink)  
Старый 26.03.2009, 13:37
Интересующийся
Отправить личное сообщение для glutton Посмотреть профиль Найти все сообщения от glutton
 
Регистрация: 26.03.2009
Сообщений: 25

Сообщение от Gvozd Посмотреть сообщение
тут можно отлично обойтись без него
как ?
Ответить с цитированием
  #10 (permalink)  
Старый 26.03.2009, 13:41
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

например повесить на onclick кнопки
главное надо добавить в конец обработчика return false
если обработчик вешаете прямо в атрибуте, то там же и пишите вконце return false
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как вывести на экран значение функции SELECT MAX(id) Владдд Серверные языки и технологии 3 25.01.2009 16:07
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11