Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 1
Регистрация: 22.10.2013
Сообщений: 185
1

Вызов JS функции из PHP

28.05.2017, 20:22. Показов 1498. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такая функция в js для рендома высоты объекта

Javascript
1
2
3
4
5
function pos_rot(min, max) {
    var $pos_rot;
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
$pos_rot = pos_rot(20, 45);
При обновлении страницы рендом постоянно происходит, всё работает

Как в php вызвать эту функцию через кнопку?

В начале php инклюжу js.

PHP
1
2
<INPUT TYPE="button" VALUE="Ещё" NAME="next"
   onClick="pos_rot(this)">
Кнопка появляется, при нажатии не ругается, но ни чего не происходит. Мозги так вспухли, что похоже очевидного не вижу

Или это мне к аяксу идти надо?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2017, 20:22
Ответы с готовыми решениями:

Вызов JavaScript функции внутри php
Всем привет. Есть необходимость вызвать ява функцию внутри пхп. Собственно вот таким кодом я...

Вызов php функции
Здравствуйте! Мне нужно вызвать php-функцию и результат поместить в блок. Функция вызывается, но не...

Вызов функции PHP из JS
Друзья, подскажите начинающему: Есть функция в PHP: function AddEntry() { ...

Вызов js функции в php функции что в js
В общем имеем такое извращение &lt;script&gt; ... document.write(&quot;&lt;?php echo...

10
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
28.05.2017, 20:31 2
Во-первых, PHP здесь вообще не причем.

Здесь HTML JS.
А теперь посмотрим на функцию: pos_rot(min, max)
Туда надо передать два параметра,
два числа (минимальное и максимальное значение).
Теперь смотрим на это:
onClick="pos_rot(this)"
Ничего не заметили?
Передайте вместо одного параметра this два числа.
onClick="pos_rot(2, 6)"
например.
0
3 / 3 / 1
Регистрация: 22.10.2013
Сообщений: 185
28.05.2017, 20:45  [ТС] 3
alexsamos33,
Цитата Сообщение от alexsamos33 Посмотреть сообщение
onClick="pos_rot(2, 6)"
Писал и (min,max) и (2,6). Вообще ни какой реакции. "This" написал тут по привычке
0
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
28.05.2017, 20:47 4
Скрипт и кнопка на одной странице?

Консоль браузера лучше бы посмотрели, какие выдает ошибки. F12
0
3 / 3 / 1
Регистрация: 22.10.2013
Сообщений: 185
28.05.2017, 20:49  [ТС] 5
alexsamos33, конечно смотрел. Написал с самого начала, что ни на что не ругается. Так просто кнопка в пустую нажимается и всё. Функцию и инклюдил и на одну страницу вставлял - одна фигня
0
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
28.05.2017, 20:54 6
А если переменную var $pos_rot;
вынести за пределы функции?
1
3 / 3 / 1
Регистрация: 22.10.2013
Сообщений: 185
28.05.2017, 21:04  [ТС] 7
alexsamos33,
Javascript
1
2
3
4
5
function pos_rot(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
var $pos_rot;
$pos_rot = pos_rot(20, 45);
PHP
1
<input type='button' value='Нажми на меня' onclick='pos_rot(20,40)' />
Безрезультатно
0
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
28.05.2017, 21:11 8
Так а что Вы хотите получить? Эта функция же ничего не меняет и не выводит.
Или Вы хотите через JS сделать число и передать в PHP? Тогда каким образом это работает при загрузке? В PHp можно такую же свою функцию сделать. А напрямую переменные передавать не получится.

Опишите лучше полностью (от начала до конца) всю задаччу.

Добавлено через 54 секунды
Если через alert хотя бы вывести, то да, выйдет (покажется) значение этой функции. А так не происходит ничего, правильно.
1
3 / 3 / 1
Регистрация: 22.10.2013
Сообщений: 185
28.05.2017, 21:17  [ТС] 9
Хорошо, по порядку.

qwer.js

Javascript
1
2
3
4
5
function pos_rot(min, max) {
    var $pos_rot;
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
$pos_rot = pos_rot(20, 45)
qwer.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<body>
<script src="qwer1.js"></script>
<input type='button' value='Нажми на меня' onclick='pos_rot(20,40)' />
 
<script>
window.onload=function()
{
var rot=document.createElement('div');
rot.style.marginLeft=$pos_rot+'px';
}
 
</script>
</body>
Вот в крадце и всё. Ну не считая ещё десяток генерируемых переменных вставленных в десяток других дивов. Но схема такая.
При обновлении страници всё генерируется и дивы изменяются (кстати прикольные моськи получились)) эт хочу генерацию ав сделать)
Но вот как это всё вызвать по кнопке, что бы юзеру не надо было каждый раз f5 тыкать, что бы выбрать понравившуюся аву, а просто кнопочку "сгенерировать" нажимать
0
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
28.05.2017, 21:40 10
Ну так правильно же!!!
Загрузка страницы происходит же раньше, чем Вы нажимаете кнопку!!!
Может так попробовать?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<body>
<script src="qwer1.js"></script>
<input type='button' value='Нажми на меня' onclick='ch_rot();' />
 
<script>
function ch_rot(){
var $pos_rot = pos_rot(20,40);
var rot=document.createElement('div');
rot.style.marginLeft=$pos_rot+'px';
}
window.onload=function()
{
ch_rot();
}
 
</script>
</body>
Добавлено через 3 минуты
Или нужно чтобы div один раз создался и уже для него применялись свойства?

Добавлено через 2 минуты
Если один div и его изменять, то так:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<body>
<script src="qwer1.js"></script>
<input type='button' value='Нажми на меня' onclick='ch_rot();' />
 
<script>
var rot;
function ch_rot(){
var $pos_rot = pos_rot(20,40);
rot.style.marginLeft=$pos_rot+'px';
}
window.onload=function()
{
rot=document.createElement('div');
ch_rot();
}
 
</script>
</body>
А в первом случае каждый раз будет создаваться новый элемент div .
1
3 / 3 / 1
Регистрация: 22.10.2013
Сообщений: 185
29.05.2017, 00:53  [ТС] 11
Так тоже ни чего не изменятся(

Добавлено через 41 секунду
Сейчас попробую

Добавлено через 1 минуту
alexsamos33, нет. Ни чего не изменяет

Добавлено через 1 минуту
alexsamos33, помоему мы уже потеряли привязку к функции рендома

Добавлено через 53 секунды
Цитата Сообщение от alexsamos33 Посмотреть сообщение
Или нужно чтобы div один раз создался и уже для него применялись свойства?
Да, он создан, а js рендомом только изменяется

Добавлено через 2 минуты
alexsamos33, Если есть время и желание, могу закинуть весь весь скрипт. Его нужно будет только скопировать и вставить в два файла. Может поковыряетесь и поймёте. За одном зацените генерируемые моськи))

Добавлено через 6 минут
alexsamos33, но функции вызвать по кнопке - пол беды)) я вот мозгу ломаю, как привязывать выбранную генерацию к юзеру)) Вот думаю может перерисовать в канвасе, да туда рендом запилить. Из канваса можно хоть вывести всё получившееся изображением. Ну или в БД заливать все эти рендомные занчения и запоминать их для юзера

Добавлено через 2 часа 58 минут
alexsamos33, разобрался, получилось. Спасибо, что старался помочь!!!
Только вот сейчас остро встал второй вопрос) но это уже другая тема))
0
29.05.2017, 00:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2017, 00:53
Помогаю со студенческими работами здесь

Вызов php функции в Smarty
Всем доброго дня! Столкнулся с тем, что не знаю как вызвать php функцию с параметром в Smarty. ...

Вызов javascript функции из php
Как вызвать функцию javascript из php? &lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt; function clear() { ...

Вызов функции jquery из php
Решил оптимизировать немного код, когда выводил не через php с помощью echo, а обычным html все...

Вызов PHP-функции кнопкой
вызвать функцию кнопкой php? возможно ли? что то я уже столько вариантов перепробовал но никак не...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru