2010-08-03 1 views
-3

Мне нужен PHP, чтобы открыть новое окно с текстом из переменной.PHP не будет эхом или выполнить JavaScript

Вот что я пробовал.

echo "<script> 
    $myWin=window.open('','$myWin','menubar,scrollbars,left=30px,top=40px,height=800px,width=800px'); 
    $myWin.document.write(".$logtext."); 
    </script>"; 

но не работает. любые лучшие идеи или предложения? Благодаря! :)

+0

Что вы имеете в виду это не работает? Не выводит ли он что-либо в браузер? Не работает ли Javascript? –

+0

Любые ошибки JS? Каков результат этого 'echo'? – hsz

+0

Главный вопрос: что вы видите в источнике страницы? –

ответ

1

Прежде всего $ myWin может быть просто myWin в JS:

my_window= window.open ('','mywindowname','status=1,width=350,height=150'); 
my_window.document.write('".$myphpstring."'); 
+0

так просто уточнить, что это будет ваша версия: эхо " "; – DBQ

+0

Он работает нормально, так как для открытия нового окна и отображения файла $ logtext, но только если он довольно короткий. Когда я назначаю реальное значение из базы данных (длинный текст), например 50 страниц, новое окно не открывается ... есть ли какие-либо ограничения в размере? –

+0

Честно говоря, не уверен. Обычно я использую всплывающее окно для более мелких бит информации. Если это действительно 50 страниц, почему бы не ссылаться на полный элемент контента без popup? Или если это истинный документ, почему бы не выводить на PDF-файл и показывать? – DBQ

2

Это не имеет никакого отношения к PHP: вы выводите строку. Эта строка - это JavaScript, который интерпретируется браузером. Вам нужно отладить этот JavaScript.

Например, эта строка:

$myWin=window.open(... 

приведет

=window.open(... 

потому что $myWin интерпретируется как переменная РНР (если переменная $myWin не была установлена ​​в PHP - это не совсем понятно, из вашего кода, есть ли это или нет, но я думаю, что это не так.)

Решение - если, как я уже сказал, myWin не установлен, ng $ от имени переменной, чтобы сделать его нормальной переменной JS.

Всегда смотрите на конечный результат в своем браузере. И, пожалуйста, пожалуйста, опишите проблему более подробно, чем «не работает»!

+0

+1 Хорошо заметили! – Gumbo

2

Гадать недо больше информации от вас ..

$myWin.document.write('$logtext'); 
1

Если вы пытаетесь сделать регистрацию, попробуйте FirePHP: http://www.firephp.org/.

После установки вы можете сделать это так, если вы не хотите использовать firephp.

Получите FireBug и попробуйте это.

<script> 
    console.log("<?=$msg?>"); 
</script> 
1

Я не знаю, что PHP строка $logtext выглядит, но мне кажется, что Javascript строка не будет иметь правильный синтаксис.

Попробуйте $myWin.document.write(\"$logtext\");

+0

еще лучше, пройти $ LogText через 'json_encode()' первой, превращая его в абсолютно законный яваскрипте данных –