for(i=0...
//button
add_database[i] = new Button();
add_database[i].Text = "add";
add_database[i].Name = "add_" + i;
add_database[i].Click += new EventHandler(add_database);
list[i].Controls.Add(add_database[i]);
//textbox
textbox[i] = new TextBox();
textbox[i].Location = new Point(90, 14);
textbox[i].Name = "file_name_" + i;
list[i].Controls.Add(textbox[i]);
Надо как то поймать этот textbox[i] в add_database(object sender, EventArgs e)
Если решать в лоб, то нужно как сделать так чтобы можно было получить номер кнопки. Сама кнопка передаётся в объекте sender и у нее есть замечательное поле Tag, туда можно положить i, а потом достать.
З.Ы. Тут есть тег для кода, будет лучше смотреться.
Всем привет!
Вообщем проблема такого рода:
Динамически создается TextBox и Button, как при событии Button.Click получить значение TextBox.Text?
Делаю смелое предположение что речь идёт о WinForm, и предлагаю просто сохранять где-нибудь указатель на TextBox и в обработчике получать введённый текст. Вообще бы надо код посмотреть.
З.Ы. А знаете ли вы, что подписываясь на событие динамически созданной кнопки, вы неявно храните ссылку на эту самую кнопку. Т.е. после того как кнопка становится ненужна, её недостаточно удалить с формы, нужно ещё её отписать, иначе она так и останется висеть в памяти. Такая вот утечка памяти.
как-то,видел где-то что можно подгружать переменную из php через javascript в html
Мне кажется, что автор не совсем понимает взаимодействие клиента и сервера. По данному случаю могу сказать, что яваскрипту абсолютно всё равно как генерируются данные, которые он хочет загрузить в тело страницы, статика это или пхп-скрипт. С точки зрения яваскрипт происходит простой запрос на сервер за данными, сервер что-то возвращает, яваскрипт обрабатывает ответ и мб встраивает в тело страницы. Обычно это называют AJAX.
Не сработает, если данное содержимое находится с файле page2.html как того желает JaST, то сервер его просто выплюнет без обработки как статику, при стандартных настройках естественно.
Я хотела строки подключения к бд вынести в отдельный файл и обращаться к нему из других файлов, но файл не читается и соответственно ничего не работает. Подскажите как сделать правильно?
Мне видится два варианта:
1. Настроить сервер так, чтобы он интерпретировал файлы с расширением .html как файлы с php скриптами, и тогда просто инклуд и не паримся.
2. Добавить page2.html айфрейм на index.php.
Но это зависит от того, чего конкретно тебе подойдёт.
Здравствуйте, можно ли с помощью SQL, при обновлении записи увеличить дату, скажем, на один год? Или же придется её сначала вытаскивать, изменять в PHP, а потом обратно вставлять?
Конечно можно, но зависит от конкретной субд.
Поверхностное гугление даёт такиерезультаты для MySql, для msSQL и oracle будут другие функции.
или пересмотреть метод построения страницы с целью избавиться от рекурсии
Вот, самое сложное - это донести проблему до окружающих :)
exec - как вариант, хотя не понятно что с производительностью, нужно тестить и с выводом там простым echo не обойтись. При запуске первого теста кавыч матюкнулся на подозрительную активность типа "рут.шел", как бы exec не подымал новый процесс.
Думал избавиться от рекурсии, но тогда придётся использовать стек прямо в шаблоне для запоминания состояния вывода. Вывожу из дерева. Преобразование дерева для упрощения алгоритма вывода придумать не смог. Если охота поразмять мозг, то дерево выводится как вложенные дивы, т.е. див, внутри содержимое узла и список дивов дочерних узлов (т.е. дивы, внутри которых содержимое узла..... люблю рекурсию)
Вообще бы хорошо найти готовый шаблонизатор, чтобы свой велосипед не городить.
Ни разу не спорю, что этот вариант самый резкий. 8 секунд это был второй вариант преложенный мной для того чтобы обойти проблему повторного объявления функции. Повторный вызов рекурсивного шаблона это одно из требований которое я не раз упоминал.
Вот собственно и проблема: сделать рекурсивный вывод. Я не знаю как красиво её решить, но возможно я чего то не знаю про пхп :)
Некрасивое решение: объявить в классе метод который вызывает рекурсивный кусок и вызвать его как $this->f() прямо из шаблона и, соответственно, обойтись без объявления функции в шаблоне.
-------------------------------- ------------------
Вот кстати и реализация
может проще изменить отношение к php вставкам
тем более что их можно оформить достаточно привлекательно
С привлекательностью особой проблемы и нет, на крайний случай буду заменять {{ на <?php, а }} на.. ну вы поняли.
Проблемы такие мне видятся: шаблон получает переменные из глобального контекста, но это лечится с помощью подключения в метод класса, тогда можно обращаться через $this->value, но дважды такой метод вызвать нельзя, если я объявлю внутри шаблона функцию (хотя тут не знаю, можно ли в таком случае вообще объявлять функцию, скорее всего можно). (Добавление)
Stierus пишет:
Вцелом ты обосрал все более-менее крупное из того, что есть, за исключением, разве что, smarty, но что-то мне подсказывает, что и он тебе не подойдет.
ps если уж twig тебя не устроил, который даже в симфони2 юзается активно разрабами - то думаю, писать тебе его самому :)
Я не обосрал, а лишь сказал, что они не подходят под мои требования. Шаблонизаторы эти мощные, можно классные вещи мутить, но медленные. Мне нравится какую структуру классов генерирует твиг, но красота шаблона достигается через рефлексию, а на вызов функции делается через $ret = call_user_func_array(array($object, $method), $arguments); , что отжирает кучу времени, если вызвать 1000 раз.
Есть у меня мысль сломать всё лишнее в твиге (с моей точки зрения), и сделать так чтобы вставки были более пхпешными, а код более резким, но это время. Поэтому решил обратиться коллективному разуму.
Достался мне в наследство сайт с dle движком и их весёлой системой шаблонов. Весёлость заключается в том, что значения в шаблон подставляются с помощью замены строки. Вроде нормальная практика, но производительность не ахти, особенно когда нужно генерировать вывод тысячи динамически (я как бы намекаю на невозможность кеширования). И вообще мне такой подход не нравится :(
Пробовал я делать вывод через шаблоны на пхп, но ко мне подобралась засада при выводе иерархических данных через использование рекурсии: функция объявляется и не даёт шаблон вызвать повторно (редко, но нужно). Хотя тут я мог не доглядеть, и если кто знаешь как несколько раз вызвать php-шаблон, буду благодарен за информацию, хотя это уже не то что мне надо.
Далее я пошёл по шаблонизаторам. Попробовал твиг, квикли, а дальше пробовать стало лень. Твиг работает катастрофически медленно из-за хиртожопых вызовов функций, а квикли не позволяет дважды вызвать шаблон на исполнение + сразу же нашёл баг в генерированном шаблоне (разрабам не сообщал, лень). Букв уже много, так что скажу чего хочу.
Хочу очень простой шаблонизатор, шаблоны которого работают настолько быстро насколько позволяет пхп (компиляция шаблона (блитц не предлагать)), чтобы шаблон можно было вызывать повторно на вывод и чтобы шаблон имел не такой вырвиглазный синтаксис как пхп вставки.