Привет всем! Возникла такая ситуация. Во всплывающем окне человек выбирает некое наименования, допустим (Шампунь "Класс") . При нажатии на строку выполняется JS, который отправляет данные в родительское окно. [js]onClick=\" window.opener.changeBut(document.getElementById('prod_title').value ); window.opener.focus(); self.close(); \"[/js] Принимает строку этот код: PHP: <input type='text' id=\"Prod_title\" size='50' value='' readonly> Так вот при возврате в родитеский input кавычки обрывают данные и я получаю строку (Шампунь ). Мне посоветовали применить PHP: htmlspecialchars($smth ,ENT_QUOTES) но пхп все время ругается. Не хочет контачить с Js. Как можно решить эту проблему?
Я пробовала вставить пхп в JS [js]function changeBut(prod_name) { document.getElementById('Prod_title').value = prod_name; } [/js] PHP: <input type='text' id=\"Prod_title\" size='50' value='' readonly> Если вставить htmlspecialchars($prod_title,ENT_QUOTES) в value, то он его не видит, а при попытке вставить как-нибудь так.. Это и есть 223 строка. PHP: [js]document.getElementById('Prod_title').value = ".htmlspecialchars(".prod_name".,ENT_QUOTES); ."[/js] говорит, что PHP: PHP Parse error: syntax error, unexpected '.', expecting ')' in classes/db.php on line 223 Собственно я с ним согласна, но не знаю куда еще можно воткнуть, чтобы работало корректно и не обрывало строку на первых же двойных кавычках. К слову сказать одинарные и косые проходят без проблем.
Выкладываю. Это index.php , в котором находиться форма, куда возвращается данные. PHP: <script language='JavaScript'> \n <!-- function changeBut(prod_name) { document.getElementById('Prod_title').value = prod_name; } //--> </script> \n \n <form> <input type='text' id=\"Prod_title\" size='50' value='' readonly> <input type='button' value='".constant('_SEARCH')."' onClick='window.open(\"products.php\", \"Products search\", \"toolbar=0,scroll=yes, width=600,height=800, resizable=yes\");'> </form> products.php (Всплывающее окно) Кусочек, т.к. весь массив выводится в цикле. Это тело цикла. PHP: <form> <input id=\"prod_". $line['ID'] ."\" type=\"hidden\" value=\"". $line['ID'] ."\" /> \n <input id=\"prod_". $line['ID'] ."_name\" type=\"hidden\" value=\"". $line['NAME'] ."\" /> \n <a href='' title='". constant('_SELECT') ."' onClick=\" window.opener.changeBut(document.getElementById('prod_". $line['ID'] ."').value ); window.opener.focus(); self.close(); \"> ". htmltotext($line['NAME']) ." </a> </td> \n"; </form> Если поможете объяснить в чем ошибка, то буду очень благодарна.
В первом коде нет ни единой php-команды. Даже нет места, которое бы PHP обрабатывал. Во втором коде РНР-переменные вообще должны отображаться как текст,потому что они не между <?php ?>
Как ни странно, PHP генерирует ошибки чуть ли не на литературном английском. Поэтому, когда видишь ошибку, попробуй перевести. Эта ошибка означает, что в 223-й строке файла db.php вместо ожидаемой скобки стоит точка