Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JavaScript из php файла (https://javascript.ru/forum/misc/25985-javascript-iz-php-fajjla.html)

OklickSpb 21.02.2012 20:58

JavaScript из php файла
 
if($rgArray["user_password"][0] == $passwordfinish)
            {
                    echo "<script type='text/javascript'>alert('hdfgfjfj');</script>";
             }

Смысл такой, через js в php файл отправляется запрос, после которого в зависимоти от функции php должен выполниться какой то скрипт, пример моего кода - выше. Он не хочет срабатывать, то есть alert не вылетает, как сделать, что бы работало?

poorking 21.02.2012 21:01

SyntaxHighlighter как бы намекает...
if ($rgArray["user_password"][0] == $passwordfinish) {
    echo "<script type='text/javascript'>alert(\"hdfgfjfj\");</script>";
}


UPD не актуально, у автора двойные кавычки были не экранированы внутри alert

UPD а у вас точно это отдается браузеру? Условие срабатывает?

Цитата:

Сообщение от OklickSpb
через js в php файл отправляется запрос

А потом вы что делаете с ответом?

OklickSpb 21.02.2012 21:05

Условие срабатывает точно, но даже
if ($rgArray["user_password"][0] == $passwordfinish) {
    echo "<script type='text/javascript'>alert(\"hdfgfjfj\");</script>";
}

Не работает...

function inputSiteUser()
{
   	if(xmlHttp)
	{
		try
		{
			var firstvalue = document.getElementById("loginInput").value;
			var params = "email="+firstvalue+"&pass="+secondvalue;
			xmlHttp.open("GET","./ajax_php/inputUser.php?"+params, true);
			xmlHttp.onreadystatechange = handleRequestStateChange_inputSite;
			xmlHttp.send(null);
		}
		catch(e)
		{
			alert("Error connected to server.");
		}
	} 
}

function handleRequestStateChange_inputSite()
{
	myDiv = document.getElementById("tdInpurSiteError");
	if(xmlHttp.readyState == 4)
	{
		if(xmlHttp.status == 200)
		{
			response = xmlHttp.responseText;
			myDiv.innerHTML = response;
		}
	}
}

код JS, вот в tdInpurSiteError должен вернуться ответ,
в PHP очень много кода, я его сюда выкладывать не буду, потому что его очень много, но там все правильно - 100%, потому что все срабатывает, кроме alert.
Просто смысл в том, что echo "<script type='text/javascript'>alert(\"hdfgfjfj\");</script>"; не срабатывает в любом случае...

poorking 21.02.2012 21:08

Цитата:

Сообщение от OklickSpb
через js в php файл отправляется запрос,

Как вы запрос отправляете JS-ом?

OklickSpb 21.02.2012 21:30

Конечно

T-sh 21.02.2012 21:42

зачем пихать js в блок innerHTML'ом? не проще ли сразу исполнить alert()?

OklickSpb 21.02.2012 21:44

А по другому никак с PHP не связать.

T-sh 21.02.2012 22:01

php:
print '<script language="javascript">alert("blahblahblah");</script>';

OklickSpb 21.02.2012 22:04

Не срабатывает.

poorking 21.02.2012 22:09

Что значит не работает? вам responseText приходит какой?

что значит
Цитата:

Сообщение от OklickSpb
echo "<script type='text/javascript'>alert(\"hdfgfjfj\");</script>"; не срабатывает в любом случае...

то есть код этот выполняется, но сервер его не отдает чтоли? o_O посмотрите чему равна переменная response после присвоения? Почему она глобальная? Нет ли ошибок в консоли отладчика браузера? Проблему локализуйте и сразу сами поймете где ошибка.

Также мне что-то подсказывает что тут ошибка
Цитата:

Сообщение от OklickSpb
myDiv = document.getElementById("tdInpurSiteError");


T-sh 21.02.2012 22:13

Цитата:

Сообщение от OklickSpb (Сообщение 159024)
Не срабатывает.

строчка с выводом работает 100%.

присмотритесь к комменту выше от poorking.

OklickSpb 21.02.2012 22:16

Цитата:

Сообщение от poorking (Сообщение 159025)
Что значит не работает? вам responseText
то есть код этот выполняется, но сервер его не отдает чтоли?

Сервер отдает, браузер принимает, но не выполняет...

T-sh 21.02.2012 22:21

Цитата:

Сообщение от OklickSpb (Сообщение 159028)
Сервер отдает, браузер принимает, но не выполняет...

а с чего ему выполняться-то, когда страница уже загружена? :) с этого и надо было начинать, если отдаёт сервер нормально.

мой коммент про то, почему бы сразу не исполнить, а пихать через innerHTML ещё в силе.

либо, забирайте у сервера уже построенной функцией, которую исполните после удачного ответа...

OklickSpb 21.02.2012 22:33

Ну все теперь понятно, спасибо!
Только можете более подробно описать:
Цитата:

забирайте у сервера уже построенной функцией, которую исполните после удачного ответа...
.

Mахmахmахimus 21.02.2012 22:45

как придет ответ от серва с текстом функции выполни его ивалом
eval("alert('ffffffff')")

сервом отправь текст "alert('ffffffff')"


п.с. то что ты если css свойства меняешь и они автоматически применяются на скриптах это не работает.

T-sh 21.02.2012 22:51

Цитата:

Сообщение от OklickSpb (Сообщение 159033)
Ну все теперь понятно, спасибо!
Только можете более подробно описать:
.

1 вариант описал Mахmахmахimus, это самый правильный вариант.

если всё-таки нужно "записать" код в страницу.. отправляйте его в виде

function blah(){
alert('blahblah');
}


после удачного получения с сервера:
innerHTML и вызов blah();

.. но это уже извращение :)

Mахmахmахimus 21.02.2012 22:54

ивалом выполняем


"function blah(){
alert('blahblah');
}"

когда захотим юзануть выполняем
blah()

OklickSpb 22.02.2012 00:21

Большое Всем Спасибо!


Часовой пояс GMT +3, время: 08:38.