Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Запуск Jquery кода из php скрипта


Автор: vins32 4.3.2014, 23:25
Здравствуйте,  прошу помощи, уже запарился.
Суть такова нужно запустить Jquery код из php скрипта.
PHP
Код

if(($userLogin != '' and $userPassword != '' and $userLevel != '') && ($userLoginCount > 3 and $userPasswordCount > 3))
{
$userPassword = md5(md5($userPassword));
mysql_query('INSERT INTO users (userLogin, userPassword, userLevel)values("'.$userLogin.'","'.$userPassword.'","'.$userLevel.'")');
$addUserNoti = "<script type='text/javascript'>$().toastmessage('showErrorToast', 'Добавлено нового користувача');</script>";
$smarty->assign("addUserNoti",$addUserNoti);
}

Нужно запустить Jquery код
Код

$().toastmessage('showErrorToast', 'Добавлено нового користувача');

Работаю с SMARTY, пробовал выводить просто переменой в HTML, работает только в FireFox, прошу помощи.
p.s Предполагаю что можно воспользоваться ajax правда не пойму пока как smile

Автор: AJIeKceuD 5.3.2014, 16:23
А что генерируется в результате в браузере? (просмотр кода страницы) Вообще если файефокс запускает, то с пхп тут проблем быть не должно - работа пхп скрипта от браузера не зависит.

Аякс здесь не нужен.

PS

А еще у браузеров есть "консоль", если проблема в js скрипте, то там будет написана ошибка.

Автор: vins32 5.3.2014, 17:10
Ошибки нету никакой в консоле, браузер генерирует 
Код

<script type='text/javascript'>
$().toastmessage('showErrorToast', 'Добавлено нового користувача');
</script>

то что нужно по сути, думаю проблема с DOM, код выполняется раньше чем генерируется сам DOM.
Есть теория что можно с php крипта, оправить через json код  
Код

$().toastmessage('showErrorToast', 'Добавлено нового користувача');

в мой файл settings.js там его распаковать и запустить. 
Пока с json не работал буду гуглить, подскажите как идея ? Если можно пример как все это сделать.

Автор: AJIeKceuD 5.3.2014, 18:38
Если проблема в DOM, то поможет вот это http://learn.jquery.com/using-jquery-core/document-ready/
Т.е. должно получиться так:
Код

$( document ).ready(function() {
    $().toastmessage('showErrorToast', 'Добавлено нового користувача');
});

Автор: vins32 5.3.2014, 19:11
Спасибо, добавил документ реди : ) Но проблема актуальна, работает только в FF не пойму в чем дело ((( 
Зачем вообще  мне  запускать из php код jquery ? 
У меня в php файле проходит запись в БД, после записи мне нужно запустить jquery функцию для вывода сообщения про успешное добавление. Вот так в двох словах.

Автор: AJIeKceuD 5.3.2014, 19:59
Вообще "запускать из пхп JQuery" это не совсем верная формулировка, пхп только определяет выводить строчку с js кодом или нет, он ничего не запускает. Соответственно, если файрфокс выполняет js скрипт нормально, значит пхп все выводит. Работа пхп не зависит от браузера.

Если ты тестируешь под хромом, то попробуй написать свой код ($().toastmessage('showErrorToast', 'Добавлено нового користувача');) в той же консоли и посмотри выполнится ли он корректно или может что-то напишет...

Добавлено через 5 минут и 17 секунд
Возможно есть проблемы с версткой, браузеры могут по разному закрывать некорректные теги. Но без ошибок это все гадание на кофейной гуще )

Автор: vins32 5.3.2014, 23:49
Спасибо всем!, тема уже не актуальна, переделал отправку формы через технологию AJAX і запускаю jquery код 
Код

success: function(data) {
$().toastmessage('showErrorToast', 'Добавлено нового користувача');
$(".addNewUserText").val("");
},

вот так : )

Автор: jexerrus 17.3.2014, 13:14
я бы поменял местами задачи и не запускал jaavascript из php а запускал

php из javascript через ajax

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)