Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244

Как вызвать функцию из такой вот конструкции?

24.06.2010, 11:57. Показов 2884. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
объявлена функция addkorz()
ниже по странице пытаюсь ее вызвать так:
Code
1
2
3
4
5
6
print '<INPUT TYPE=BUTTON VALUE='+' class='mbtn' onClick='addkorz($x)'></td>';
// и так:
print '<INPUT TYPE=BUTTON VALUE='+' class='mbtn' onClick=''+addkorz($x)+''></td>';
// и вот так:
$func='addkorz':
print '<INPUT TYPE=BUTTON VALUE='+' class='mbtn' onClick='$func($x)'></td>';
и все не получается. Подскажите как правильно сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.06.2010, 11:57
Ответы с готовыми решениями:

Как создать вот такой вот слайдер
Очень часто вижу, на сайте требуется создать вот такой вот 3d слайдер что ли, так вот как его делать понятия не приложу, опять плагин...

Нужно нарисовать вот такой вот дом на языке программирования QBasic
Прошу очень Вашей помощи. Нужно нарисовать вот такой вот дом на языке программирования QBasic. В универе задали нарисовать дом в...

Вот такой вот error. Line too long (more than 1023 characters)
Отправляю запрос, а приходит BAD REQUEST answer := dk.PatchRequest('api/products/', j); В дебаггере посмотрел на длину...

20
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
24.06.2010, 12:13
<?
if($_GET['click'])addkorz();
?>
<input type='button' onclick='navigate('?click=1')'>
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
24.06.2010, 13:00  [ТС]
Ругается Undefined index: click на строчке
if($_GET['click'])addkorz();
А вообще мне надо без разрыва меток php, я имею в виду <? ?> у меня там цикл крутится, и в цикле вызывается по нажатию кнопки функция с параметром.
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
24.06.2010, 15:44
слушай, не морчь голову, ты сам не знаешь чего ты хочешь...
В каком цикле, какой щелчёк?
Как ты собираешься ловить щелчёк в цикле?
Кусок кода, который я тебе - сработает идеально, если ты его запишешь в документ в той же последовательности, что дал я!
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
24.06.2010, 15:46
Может саму функцию приведете? А то непонятно. Кстати у вас
addkorz(){тело метода} так?
или так addkorz($x){тело метода}?
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
24.06.2010, 16:51  [ТС]
Вот сокращенный вариант кода, все работает кроме вызова функции addkorz:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?
function addkorz($x)
{
global $art;
global $tov;
global $img;
global $ediz;
global $cen;
global $sop;
global $kvo;
if ($kvo[$x]==0){
return;
}
print '<SCRIPT LANGUAGE='JavaScript'>
';
print 'alert($tov[$x]+' = '+$kvo[$x]);
';
print '</SCRIPT>';
}
 
function dispL()
{
global $art;
global $tov;
global $img;
global $ediz;
global $cen;
global $sop;
global $kvo;
 
$IndMax = count($art);
if ($IndMax==0){
print '<H3>По запросу ничего не найдено</H3>';
}else{
$x=0;
while ($x<$IndMax) {
print '<tr><td>$art[$x]</td>';
print '<td>
$tov[$x]
 
</td>';
print '<td>$cen[$x]</td>';
print '<td>$ediz[$x]</td>';
print '<td><INPUT TYPE=TEXT name='kvo$x' SIZE=5 value=$kvo[$x]>  <INPUT TYPE=BUTTON VALUE=' + ' class='mbtn' onClick='addkorz($x)'></td>';
$x++;
}
}
}
?>
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
24.06.2010, 17:09
Все понятно, не получится по той простой причине что функция выполняется на сервере, т.е. с помощью события onclick можно вызвать javascript функцию, но уж никак не PHP
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
24.06.2010, 17:27
Ты пытаешься вызвать пхп функцию через яву ... что то новое.
Если тебе надо контролировать корзину, то стучись в аську, енто долго обяснять.
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
24.06.2010, 17:54
Вставь мой кусок кода после объявления своей функции
<?
if($_GET['click'])addkorz($_GET['click']);
?>
а вот эту строку замени на мою
print '<td><INPUT TYPE=TEXT name='kvo$x' SIZE=5 value=$kvo[$x]> <INPUT TYPE=BUTTON VALUE=' + ' class='mbtn' onClick= 'navigate('?click=$x') '></td>';
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
27.06.2010, 07:50  [ТС]
From vers:
Где же это я пытаюсь вызвать php через JavaScript?

From sl_play:
Да, так работает, но ведь происходит при этом перезагрузка страницы и теряются все переменные (не сессионные). А без перезагрузки никак нельзя?
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
27.06.2010, 08:46
Ну ты даешь тебе что конкретно надо сделать?
Посмотри внимательно функция addkorz($x) PHP,
следовательно выполняется на сервере.
а событие onClick='addkorz($x)' javascript
Помести свою функцию для начала в javascript
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
27.06.2010, 09:10  [ТС]
Да мне надо-то всего навсего добавить товар в корзину
(а вернее в массив корзины - массив PHP).
Если я свою функцию addkorx() переведу в JavaScript, то как
я в ней инициализирую переменные PHP? Другими словами - как я могу передать переменные между JS и PHP?
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
27.06.2010, 09:57
Я сейчас тоже делаю интернет магазин и насколько я знаю что бы добавить товар в корзину используется PHP, или кладется в сессию или в базу данных
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
27.06.2010, 11:00  [ТС]
Не бросайте в трудную минуту, и так тошно
Корзина у меня в виде массива в PHP-сессии.
Теперь я динамически вывожу в таблице список товаров, а в одной из ячеек поле для ввода количества и кнопку 'добавить в корзину'.
Мне надо, что бы по клику этой кнопки активизировалась эта долбаная
функция, где я смог бы произвести операции над своим сессионным массивом.
В тоже время перезагруз страницы совсем не нужен, ну неужели же нельзя
просто вызвать функцию на выполнение?
В приведенном мной коде функции addkorz() вызов JavaScript сделан только для проверки, что функция вызывается (там же кроме alert ничего нет) это только рабочий вариант.
Как же мне сделать то этот вызов? Ну не так -то по другому, но ведь как-то же делают люди!!!
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
27.06.2010, 11:19
Насколько я понимаю тебе надо все это сделать без рефрешинга страницы? Тогда сделай так чтобы твоя корзина загружалась в новом окне (можно совсем маленьком), там добавляешь все что тебе нужно добавить и закрываешь его.
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
27.06.2010, 12:35
можешь записывать пользователю в кукис один за другим id товара.
как ты понимаешь, это можно сделать и клиентским скриптом.

Я, всё это сделал только для зарегистрированных клиентов, и добавляю товар непосредственно в базу в общий список товаров одного клиента.
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
27.06.2010, 13:31  [ТС]
С новым окном оно конечно... работает, но вот это мелькание (открытие-закрытие) окна не очень здорово смотриться. Даже если его закрывать не автоматом, а показывать юзеру с надписью типа 'В Вашу корзину добавлено...' тоже ведь не есть хорошо?
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
27.06.2010, 13:37
А почему тебе категорически без перезагрузки нужно?
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
27.06.2010, 14:50  [ТС]
Не то, что бы 'категорически' но...
Дело в том, что страница эта сама динамически формируется и вызывается
из меню примерно так:
Code
1
2
3
<a class='btn' href='list.php?TName=db/301.js&Sg=Кондитерские емкости'>Кондитерские емкости</a>
<a class='btn' href='list.php?TName=db/302.js&Sg=Оборудование'>Оборудование</a>
и т.д.
Внутри уже идет разбор ссылки, открывается нужный файл и выгребается информация, внутри же создаются переменные (массив) выводимых на страницу товаров.
При перезагрузке переменные переопределяются заново. Да и по опыту
(сейчас данный проект работает вовсю на фреймах) клиент с одной страницы выбирает до 5 - 10 позиций. Не могу же я его перегружать после каждого выбора.

Все бы хорошо, да решил избавиться от фреймов - создал PHP-сессию, все переписал, все классно, но споткнулся на вот этом единственном моменте. И буксую уже с неделю
А куки не проходят - они же могут быть отключены у пользователя. Регистрировать клиентов на сайте не могу - противоречит концепции фирмы.
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
27.06.2010, 14:59
Мдя ... тогда попробуй сделать невидимые поля и записывай туда свою корзину с помощью Java. Потом передашь это поле через форму.
Ну тогда тебе надо будет просто implode и explode'овать это поле в пхп... Тоже выход, но я не знаю какая максимальная длина у поля типа хидден.
Но есть еще другой выход, например как нибудь инвизибл div с текстовым полем ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.06.2010, 14:59
Помогаю со студенческими работами здесь

Что сделать с вот такой вот кодировкой
Тема выделена из темы: https://www.cyberforum.ru/cpp-builder/thread622714.html По поводу вызовов функций, и в других непонятных...

коллеги, возник вот такой вот трабл
Привет коллеги, возникла вот такая вот проблема буквально на днях сгорела материнка с видяхой, к сожалению сейчас нет материальной...

JQuery работа с VALUE именно этого инпута, как применить THIS к такой конструкции?
Привет дорогие Друзья! :) Помогите с конструкцией. На странице несколько форм, в каждой несколько инпутов. Суть в том, что так...

Вот такой вот бан...нетипичный
Недели назад зарегистрировал домен ссылок на нём нет никаких, на него тоже нет....сегодня попытался Яндексу скормить а он отвечает бан ...

Как сделать вот такой эффект.?
Не могу додуматься,как сделать эффект осветления нижней части блока и последующее его развертывание(пример во вложении)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru