Страницы: 1
Как обратится з PHP функции к переменной за пределами функции(не передавая етой функции переменную)?
В Javascript ето так :
<html > <head> <script> var h="hello"; function working(){ alert(h); } </script> </head> <body onload="working();"> </body> </html>
Мне нужно именно обращение к переменной за пределами функции не передавая значения в ету функцию!
Спасибо!
Отсутствует
внутри функции пропиши:
global имя_переменной;
Проблема в том что мне нужно в функции обратится за ее пределы к перменой, как на примере
Отсутствует
esquire_vik
не путайте JS и PHP
Отсутствует
Проблема в том что мне нужно в функции обратится за ее пределы к перменой, как на примере
а ты уверен, что тебе это нужно?
!
Отсутствует
Это весьма дурной тон в программировании.
!
Отсутствует
Проблема по которой мне понадобилось так "извратно" написать функцию заключается в том; что я хочу написать корзину покупателя на Ajax а именно, я с javascript передаю в функцию переменную а функция должна добавить ето имя в масив а масив сам находиться в не приделах функции(усли он в пределфх функции то при каждом вызове функции он создается новый) а так как я передаю ссылку на масив то он записывает в себя име товара и тд! А так как я немогу передать с javascript и имя самого товара и сам масив (php), поетому я и ищу выход! Может кто-то подскажет?
Отсутствует
Я ето делаю так
например
<?php function addcat(&$idname,$cat) { echo $quantitu=count($idname); $idname[$quantitu]=$cat; } $idname=array(); $cat="ladno"; $s=10; $v="serg"; addcat($idname,$cat); addcat($idname,$v); echo $idname[0]."<br>"; echo $dname[1]; ?>
Отредактировано esquire_vik (09-01-2007 23:27:00)
Отсутствует
функция должна добавить ето имя в масив а масив сам находиться в не приделах функции
для этого существует ООП.
усли он в пределфх функции то при каждом вызове функции он создается новый
против этого существует static.
А так как я немогу передать с javascript и имя самого товара и сам масив (php), поетому я и ищу выход! Может кто-то подскажет?
эм.. ты вобще БД не испольуешь?
Добавлено Срд 10 Янв 2007 11:26:20 :
Infant, отруби тег [сode] и все мигом перейдут на пастебин
!
Отсутствует
esquire_vik, предлагаю для начала выучить русский язык, а затем приступать к изучению PHP, да еще и использованию AJAX.
А по проблеме:
1) В JavaScript-функцие нужно использовать глобальную переменную из PHP? Это не получится на прямую.
2) Для AJAX используется какая-то готовая библиотека? (Если да, то какая?)
3) Про JSON что-нибудь знаете?
"Не показывайте мне дорогу, а научите как найти ее самому."
Отсутствует
Dark-Demon
Первое спасибо за помощь! Насчет баз данных то я их использую но для этого я не хочу их использовать так как мне это не нужно (мне нужно просто создать массив и передать другому скрипту для отображения информации ) я хочу создать массив имен которые я передаю с javascript в PHP!
А при работе с Ajax в моем случае static не подойдет так как мне надо дописывать данные в массив, или я не прав? Вот так это не работает Или я что – то не то делаю?
function addimg($name) { static $cat=array(); $quantitu=count($cat); $cat[$quantitu]=$name; return $cat; }
Javascript:
function show_add_result(shgoodres){ var lengt=shgoodres.length document.getElementById("shresadd").innerHTML =lengt; } function addname_img(name_img){ x_addlady(name_img,show_add_result) }
Для Ajax использую библиотеку Sajax!
Как можно создать массив имен которые я передаю с javascript в PHP?
Отредактировано esquire_vik (12-01-2007 01:06:36)
Отсутствует
esquire_vik
через AJAX передать данные в сценарий PHP напрямую нельзя, это разные языки (в частности, AJAX - это скорее разновидность JS)...
сначала мы формируем AJAX запрос. далее, например, через $_REQUEST, парсим этот запрос и выдираем из него пришедшие данные. и только после этого помещаем их в PHP массив.
вы, видимо, запутались и, по этому, не можете разобраться.
Отсутствует
shutnik, AJAX - это не язык, а технология взаимодействия JavaScript на страничке с серверным сценарием без полной перезагрузки страницы.
esquire_vik, я не зря написал про JSON. Это-то как раз и позволяет передавать массивы. Читать тут и тут.
"Не показывайте мне дорогу, а научите как найти ее самому."
Отсутствует
esquire_vik, а почему бы просто не заюзать куки? например, можно создать несколько кук с именами tovar[1], tovar[2] итд, которые в пхп объединятся в массив. это более универсально и не вызывает тормозов при обращении к серверу. естественно это в случае небольшого количества данных.
Отредактировано Dark-Demon (12-01-2007 13:54:07)
!
Отсутствует
Dark-Demon, почему куки не вызовут тормозов, а строка (то чем является по сути JSON-кодированная-переменная) вызовет? У меня в одном проекте приходилось кидать туда-сюда массивы размерностью от 2 до большое N (обычно десятки, но при глупом юзере могут быть тысячи).
"Не показывайте мне дорогу, а научите как найти ее самому."
Отсутствует
VictorS, куки будут гоняться туда-сюда при КАЖДОМ обращении к любому файлу сайта
Закрой кран
Включи свет ©
Fire! Kill IE is your desire | NULL | NULL
Отсутствует
INFOMAN, так я почти тоже и имел ввиду: куки тоже будут гоняться, причем куки занимают побольше "места" чем массив. Но как я понял Dark-Demon предлагает их поставить и заюзав 1 раз убить.
"Не показывайте мне дорогу, а научите как найти ее самому."
Отсутствует
Всем откликнувшимся спасибо!
Особенно Dark-Demon
Все ясно буду использовать сессии!
Еще вопросик маленький если я создаю массив сесий например
$_SESSION['name_image'] = 1;
И как при просмотре корзины можно извлечь данные с массива сессий?
И общий вопрос по сессиях.
Если два человека при входе на сайт в одно и тоже время выбрали одну и туже фотографию и были заведены сессии с именем фотографии будут ли эти сессии идентифицироваться по разному?
Если нет, то какое значение лучше использовать для заведения сессий (сайт без регистрации пользователей в базе данных) это типа того когда заходишь на сайт все выбираешь а потом только регистрируешься!
Отсутствует
esquire_vik
И как при просмотре корзины можно извлечь данные с массива сессий?
foreach($_SESSION as $k => $v){echo $k.' - '.$v;}
Если два человека при входе на сайт в одно и тоже время выбрали одну и туже фотографию и были заведены сессии с именем фотографии будут ли эти сессии идентифицироваться по разному?
сессии уникальны для каждого пользователя. имя сессии создаётся автоматически. функция session_start() создаёт новую сессию.
Отсутствует
почему куки не вызовут тормозов, а строка (то чем является по сути JSON-кодированная-переменная) вызовет?
потому что в случае аякса покупателю придётся ждать пока придёт ответ от сервера, а в случае куков - серверу можно ничего не посылать - реакция на пользователя мгновенная (пример - http://free-connect.ru/ ). кроме того, если покупатель откроет несколько страниц на неактивных можно поддерживать актуальность информации (например, у добавленных в корзину позиций - можно выводить "уже в корзине") не заваливая сервер запросами, а просто мониторя куки.
VictorS, куки будут гоняться туда-сюда при КАЖДОМ обращении к любому файлу сайта
да, поэтому я и сказал, что если данных немного. а в корзину обычно много не добавляют.
Отредактировано Dark-Demon (13-01-2007 03:36:32)
!
Отсутствует
Что здесь сделано не так как надо?
PHP
function addimg($name) { if(isset ($name)) { $_SESSION['name']=$name; return $_SESSION; } if(isset($_SESSION['name'])) return count($_SESSION['name']); else return 'fail'; } JAVASCRIPT function show_add_result(shgoodres){ var lengt=shgoodres.length document.getElementById("shresadd").innerHTML =hgoodres????//здесь не могу ни как вытащить ни один елемент массива } function addname_img(name_img){ x_addimg(name_img,show_add_result) }
А с coocies вообще ничего понять не могу !
Эта PHP функция написана правильно?
function addimg($name) { if(isset ($name)) { setcookie("name", $name); return $_COOKIE } if(isset($_COOKIE['name'])) return count($_COOKIE['name']); else return 'fail'; } JAVASCRIPT function show_add_result(shgoodres){ var lengt=shgoodres.length document.getElementById("shresadd").innerHTML =hgoodres????//здесь тоже самое толко я не уверен что получаю данные с PHP } function addname_img(name_img){ x_addimg(name_img,show_add_result) }
Отсутствует
esquire_vik, совершенно не понятно, чего ты этим кодом пытаешься добиться...
для кук есть ещё одна фича - нужно указывать при изменении кук "path=/", как на яваскрипте, так и на пхп...
!
Отсутствует
Страницы: 1