Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > php+javascript - парочка вопросов новичка


Автор: Scope 7.8.2008, 11:15
Итак, есть задача- открыть в PHP попап окошко фиксированного размера, слева отобразить картинку, справа описание устройства (на двух языках, в зависимости от значения переменной "set_language", отображаемой в адрессной строке исполняющего php документа), снизу кнопку ОК(типа закрыть).

Создаём попап строчкой:
Код
<a href=javascript:popUp('"; echo $str; echo "')>
Где переменная $str указывает местонахождение картинки.

Далее в яваскрипте по совету одного товарища было решено открывать заранее сформированный php документ:
Код
function popUp_details(URL) {
....
popwin=window.open("detail_popup.php,"",look)
Ну и собственно вопрос- как передать ещё одну переменную "set_language" в яваскрипт и оттуда в php документ передать переменные "URL" и "set_language"?

Код detail_popup.php:
Код

<title>Closer view</title><head>
<link rel=StyleSheet href="corporatestyle.css" type="text/css" media="screen"></head>
<body bgcolor="#FFFFFF" leftmargin=0 rightmargin=0 topmargin=0 bottommargin=0 marginheight=0 marginwidth=0>
<?php include "lang.php";?>
<TABLE cellpadding=0 cellspacing=0 border=0 width="100%" height="100%" ><tr><td align="center">
<center><br>
<TABLE cellpadding=0 cellspacing=0 border=1 bordercolor="000000"><tr><td>
<img src= "ссылка на пикчу, взятая из переменной URL, переданной в яваскрипт">
</td></tr></table>
<td width="100%" align=center><?php echo "а здесь текст на двух языках из файла lang.php, в зависимости от переменной set_language, переданной в яваскрипт"?></td>
</td></tr><tr><td colspan="2" valign="bottom" align="center">
<br><form><input type=submit value="OK" class="button-popups" onClick=\'self.close()\'></form><br>
</center>
</td></tr></table>
</body>

Автор: bars80080 7.8.2008, 12:08
допустим кнопки:
Код

<input type="button" value="по-русски" onclick="popUp_details(URL, 'ru')" />
<input type="button" value="по-немецки" onclick="popUp_details(URL, 'de')" />

функция
Код

function popUp_details(URL, lang) {
....
popwin=window.open('detail_popup.php?lang' + lang,"",look)

php-скрипт
Код

<?php
if(!empty($_GET['lang'])) $lang = $_GET['lang']; else $lang = 'ru';
// желательно сделать проверку на допустимые значения lang
include('language_'.$lang.'.php');

?>


Добавлено через 1 минуту и 2 секунды
проглядел, ну на ссылке тож самое

Автор: Scope 7.8.2008, 21:00
передаём переменную в яваскрипт строкой: 
Код
<a href=javascript:popUp_details('".$str.','.$details_lang."')>

З.Ы.: не получается "по человечески"(см. код ниже) написать этот кусок, ругается на ошибку
Код
<a href="#" onclick="javascript:popUp_details('".$str.','.$details_lang."')>


обрабатываем в яваскрипте:
Код
function popUp_details(URL, lang) {
...
popwin=window.open("detail_popup.php?url=" +URL+ "&lang=" +lang,"",look)


на выходе получаем: 
Код
/detail_popup.php?url=../gallery/108.jpg,rus&lang=undefined


 smile что не так?

Автор: Onis 7.8.2008, 21:24
Цитата(Scope @  7.8.2008,  21:00 Найти цитируемый пост)
З.Ы.: не получается "по человечески"(см. код ниже) написать этот кусок, ругается на ошибкукод
 PHP1:
<a href="#" onclick="javascript:popUp_details('".$str.','.$details_lang."')>


Напиши строку которой ты выводишь этот линк. Если через print то вроде не правильно, если не через print... тоже вроде не верно.

Автор: bars80080 7.8.2008, 21:30
ну потому что надо писать не через пень колоду, а аккуратно разделяя переменные и литералы

Код

<a href="#" onclick="javascript:popUp_details('".$str."','".$details_lang."')>
 наверно, так, но не видя всего кода рисующего эту ссылку не поручусь

Автор: Scope 7.8.2008, 21:46
Функция целиком:
Код
deleted

Автор: bars80080 7.8.2008, 21:52
Код
echo '<table width="100" border="0" cellpadding="0" cellspacing="0" class="pictire"><tr>
         <td><a href="javascript:popUp_details(\''.$str.'\',\''.$details_lang.'\');"><img src="'.$name.'" width="98" height="73" border="0" /></a></td>
  </tr></table>';  
 так вернее будет

Автор: Onis 7.8.2008, 21:56
Цитата(bars80080 @  7.8.2008,  21:52 Найти цитируемый пост)
 так вернее будет


А так вроде правильнее:
Код

echo " <table width='100' border='0' cellpadding='0' cellspacing='0' class='pictire'>
        <tr>
            <td><a href=\"javascript:popUp_details('".$str."', '".$details_lang."')\"><img src='
    ";


Добавлено @ 22:01
А нет. У вас быстродействие выше будет.

Добавлено @ 22:06
Чем меньше сtрок заключено в двойные ковычки тем лучше, интерпретатор в строке заключенной в двойные ковычки ищет переменные и заменяет на их значения. А в одинарных ковычках всё по дефолту идет как текст.

Код

$a = 5;

print '$a'; // $a

print "$a"; // 5
 

Тупанул.  smile 

Автор: bars80080 7.8.2008, 23:15
это не принципиально, когда программа провисает на нерациональных модулях, которые наверняка будут

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