Помогите вставить js в php

Статус
В этой теме нельзя размещать новые ответы.

MvKozyrev

Постоялец
Регистрация
5 Май 2007
Сообщения
128
Реакции
74
Есть вот такая строчка (окошко для ввода кода цвета)
<input '.$onchange.' type="text" name="'.$id.'" value="'.htmlspecialchars($match).'" />
Туда надо передать значение из .js - сделать визуальный выбор этого самого цвета. Не получается :confused:. Все время выдает синтаксические ошибки.
HELP :thenks:!
<script>d=document;
gen6=function(p){b='FFCC99663300'.match(/../g); //массив,6 элем.
s='';j=0;
while(j<216) //сначала ячейки и строки таблицы в s
s+=(j%36?'':'<tr>')+'<td bgColor='
+b[(j-j%36)/36]+b[(j-j%6)/6%6]+b[j%6]
+' style="font-size:4px" width=6 height=6></td>'
+(++j%36?'':'</tr>');
d.body.innerHTML+= //затем обрамление таблицы в конец док.
'<table bgColor=black cellpadding=0 cellspacing=1 id=t'
+p+'>'+s+'</table><input id=it'+p+'>';
}</script>
<script> clicked=0; //признак: показывать/фиксировать код цвета
d.onmouseover=function(e){ t=d.all?event.srcElement:e.target;
if(clicked||t.tagName!='TD')return;
//отсечка обработки не-ячеек таблицы,
//d.all?.. - для совместимости Gecko/IE
if(t.bgColor)
d.getElementById('i'+t.offsetParent.id).value=t.bgColor;
}
d.onclick=function(e){ t=d.all?event.srcElement:e.target;
if(t.tagName!='TD'&&t.tagName!='TABLE')return;
clicked=1-clicked;
}</script>
<script>onload=gen6;</script>
 
> Все время выдает синтаксические ошибки.
Какие ошибки? Пожалуйста в студию.
 
Блин. Все еще сложнее. Вот кусок кода.
$types=array('url','color');
foreach($this->cssoriginal as $element=>$v) {
if(is_array($v))
foreach($v as $property=>$value) {
foreach($types as $type) {
preg_match('/<'.$type.'option>(.*?)<\/'.$type.'option>/',$value,$matches);
if(isset($cssnew[$element][$property])) preg_match('/<'.$type.'option>(.*?)<\/'.$type.'option>/',$cssnew[$element][$property],$matches2);
else $matches2=array();
if($matches[1]) {
$add1='';
if(isset($matches2[1])) {
$match=$matches2[1];
}
else { //use original value
$match=$matches[1];
}

$id=$this->encode_formname($element,$property,$type);
$onchange='';
if($type=='color') {
$add1='
<div id="div_'.$id.'" style="border: 2px solid gray; width: 30px; height: 30px; background-color: '.$match.'"> </div>
';
$onchange='onChange="document.getElementById(\'div_'.$id.'\').style.backgroundColor=this.value"';
} else
if($type=='url') {
$add1='
<div onClick="jason_customciser_toggleimage(this);" style="border: 2px solid gray; width: 80px; height: 80px; background: url(\''.$match.'\')"> </div>
';
}
$o2[$type].='
<tr valign="top">
<th scope="row">'.htmlspecialchars($element).': '.htmlspecialchars($property).'</th>
<td>
<input '.$onchange.' type="text" name="'.$id.'" value="'.htmlspecialchars($match).'" />
</td>
<td>
'.$add1.'
</td>
</tr>
';
}
}
}
}
foreach($types as $type) {
$o2[$type]='<table class="optiontable">'.$o2[$type].'</table>';
}
foreach($types as $type) {
$o2[$type]='
<a id="options_'.$type.'_show" href="#" onClick="document.getElementById(\'options_'.$type.'\').style.display=\'\'; this.style.display=\'none\'" style="display:none;">[Показать]</a>
<div id="options_'.$type.'">
<a href="#" onClick="document.getElementById(\'options_'.$type.'\').style.display=\'none\'; document.getElementById(\'options_'.$type.'_show\').style.display=\'\'">[Скрыть]</a>
'.$o2[$type].'
</div>
';
}

$o='<h2>Изображения</h2>'.$o2['url'].'<h2>Цвета</h2>'.$o2['color'];
$o.='<p class="submit"><input type="submit" name="Submit" value="Сохранить &raquo;" /></p>';
$o.='<p class="submit"><input type="submit" name="Reset" value="Восстановить умолчания &raquo;" /></p>';
$o='<form method="post" action="">'.$o.'</form>';

$o='
<script type="text/javascript">
function jason_customciser_toggleimage(i) {
if(i.style.height=="80px") {
i.style.width="300px";
i.style.height="300px";
} else {
i.style.width="80px";
i.style.height="80px";
}
}
</script>
<div class="wrap">
'.$o.'
</div>
';

echo($o);

}

Т.е. в одной строке идет описание замены url'ов и color'ов (они пачкой считываются из CSS-файла). Получается, что придется добавлять еще условие выполнения .js
Как-то типа: if($type=='color') {

И в общем-то если вставлять скрипт перед
$o2[$type].='
<tr valign="top">
, то он хотя бы виден на странице и работает, хотя существует совершенно отдельно от всего остального.

Т.е. есть куча полей ввода, а скрипт выполняется в виде отдельной красивой таблички где-то внизу экрана (на скрине не виден).
attachment.php

И вопрос получается в том, чтобы выдернуть из .js результат его работы и передать в
<input '.$onchange.' type="text" name="'.$id.'" value="'.htmlspecialchars($match).'" />
чтобы цветовая табличка появлялась под каждой строчкой ввода цвета и данные из таблички передавались в эту строчку.
:bc:
 

Вложения

  • screen.GIF
    screen.GIF
    3,2 KB · Просмотры: 135
А если экранировать код JS?
Тоесть

PHP:
<?php
echo '
  <script>d=document;
  gen6=function(p)
  {   b=\'FFCC99663300\'.match(/../g);
       s=\'\';j=0;'
   ....
  }
?>

А еще лучше - покажи какие ерроры сыплятся ;)
 
Я же написал, что нет уже ошибки. Скрипт работает (Экранировал через ?><script>бла-бла-бла</script><?php)
Но я никак не пойму, как его результат передать в php, чтобы вот эта табличка
attachment.php
.
появлялась над каждой строчкой, куда надо вводить цвет и чтобы результат работы скрипта передавался в эту строчку.
 

Вложения

  • screen2.PNG
    screen2.PNG
    2,1 KB · Просмотры: 114
PHP:
<input ?>JS-функция<? type="text" name="'.$id.'" value="'.htmlspecialchars($match).'" />
Попробуй в разных вариациях .

Добавлено через 1 минуту
Но я никак не пойму, как его результат передать в php
Аяксом, мой друг, аяксом :) .
 
не получается :(
 
Попробуй прикрутить какой-нибудь ajax-фреймворк .
 
Советую Для просмотра ссылки Войди или Зарегистрируйся
там работа с аяксом проще некуда.
Но в тоже время, если нужно, можно довольно сложные запросы делать.
 
а проще всего пользоваться конвертором скриптов ява ,хтмл в php Arigola Html2Php Converter.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху