>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Как обратиться из PHP функции к переменной http://forum.mozilla-russia.org/viewtopic.php?id=14880 |
esquire_vik > 09-01-2007 01:02:42 |
Как обратится з PHP функции к переменной за пределами функции(не передавая етой функции переменную)? Выделить код Код:<html > <head> <script> var h="hello"; function working(){ alert(h); } </script> </head> <body onload="working();"> </body> </html> Мне нужно именно обращение к переменной за пределами функции не передавая значения в ету функцию! |
Shutnik > 09-01-2007 01:08:54 |
внутри функции пропиши: |
esquire_vik > 09-01-2007 01:23:42 |
shutnik пишет
Проблема в том что мне нужно в функции обратится за ее пределы к перменой, как на примере |
Shutnik > 09-01-2007 02:04:01 |
esquire_vik |
Dark-Demon > 09-01-2007 11:43:09 |
а ты уверен, что тебе это нужно? |
Al_H > 09-01-2007 12:36:23 |
shutnik |
Dark-Demon > 09-01-2007 14:19:48 |
Это весьма дурной тон в программировании. |
esquire_vik > 09-01-2007 23:02:01 |
Проблема по которой мне понадобилось так "извратно" написать функцию заключается в том; что я хочу написать корзину покупателя на Ajax а именно, я с javascript передаю в функцию переменную а функция должна добавить ето имя в масив а масив сам находиться в не приделах функции(усли он в пределфх функции то при каждом вызове функции он создается новый) а так как я передаю ссылку на масив то он записывает в себя име товара и тд! А так как я немогу передать с javascript и имя самого товара и сам масив (php), поетому я и ищу выход! Может кто-то подскажет? |
Shutnik > 09-01-2007 23:05:30 |
Al_H пишет
ага, во втором варианте пропустил esquire_vik |
esquire_vik > 09-01-2007 23:26:07 |
Я ето делаю так Выделить код Код:<?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]; ?> |
Infant > 09-01-2007 23:42:50 |
Уважаемые участники обсуждения! Ну и всё… |
Dark-Demon > 10-01-2007 11:23:58 |
для этого существует ООП.
против этого существует static.
эм.. ты вобще БД не испольуешь? Добавлено Срд 10 Янв 2007 11:26:20 : |
VictorS > 10-01-2007 12:55:52 |
esquire_vik, предлагаю для начала выучить русский язык, а затем приступать к изучению PHP, да еще и использованию AJAX. |
esquire_vik > 12-01-2007 01:04:35 |
Dark-Demon Выделить код Код: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! |
Shutnik > 12-01-2007 02:37:02 |
esquire_vik |
VictorS > 12-01-2007 10:27:30 |
shutnik, AJAX - это не язык, а технология взаимодействия JavaScript на страничке с серверным сценарием без полной перезагрузки страницы. esquire_vik, я не зря написал про JSON. Это-то как раз и позволяет передавать массивы. Читать тут и тут. |
Dark-Demon > 12-01-2007 13:38:43 |
esquire_vik, а почему бы просто не заюзать куки? например, можно создать несколько кук с именами tovar[1], tovar[2] итд, которые в пхп объединятся в массив. это более универсально и не вызывает тормозов при обращении к серверу. естественно это в случае небольшого количества данных. |
VictorS > 12-01-2007 16:05:08 |
Dark-Demon, почему куки не вызовут тормозов, а строка (то чем является по сути JSON-кодированная-переменная) вызовет? У меня в одном проекте приходилось кидать туда-сюда массивы размерностью от 2 до большое N (обычно десятки, но при глупом юзере могут быть тысячи). |
INFOMAN > 12-01-2007 22:25:06 |
VictorS, куки будут гоняться туда-сюда при КАЖДОМ обращении к любому файлу сайта |
VictorS > 12-01-2007 23:46:06 |
INFOMAN, так я почти тоже и имел ввиду: куки тоже будут гоняться, причем куки занимают побольше "места" чем массив. Но как я понял Dark-Demon предлагает их поставить и заюзав 1 раз убить. |
esquire_vik > 13-01-2007 01:30:00 |
Всем откликнувшимся спасибо! |
Shutnik > 13-01-2007 01:48:52 |
esquire_vik
foreach($_SESSION as $k => $v){echo $k.' - '.$v;}
сессии уникальны для каждого пользователя. имя сессии создаётся автоматически. функция session_start() создаёт новую сессию. |
Dark-Demon > 13-01-2007 03:28:44 |
потому что в случае аякса покупателю придётся ждать пока придёт ответ от сервера, а в случае куков - серверу можно ничего не посылать - реакция на пользователя мгновенная (пример - http://free-connect.ru/ ). кроме того, если покупатель откроет несколько страниц на неактивных можно поддерживать актуальность информации (например, у добавленных в корзину позиций - можно выводить "уже в корзине") не заваливая сервер запросами, а просто мониторя куки.
да, поэтому я и сказал, что если данных немного. а в корзину обычно много не добавляют. |
esquire_vik > 16-01-2007 01:25:43 |
Что здесь сделано не так как надо? Выделить код Код: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 вообще ничего понять не могу ! Выделить код Код: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) } |
Dark-Demon > 16-01-2007 12:14:51 |
esquire_vik, совершенно не понятно, чего ты этим кодом пытаешься добиться... |