Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Кавычки. PHP + jQuery
Форумы портала PHP.SU » » HTTP и PHP » Кавычки. PHP + jQuery

Страниц (1): [1]
 

1. haveFun - 29 Февраля, 2012 - 02:06:35 - перейти к сообщению
столкнулся с такой проблемой:
после выполнения проверки входной переменной на валидность, в диве (#status) должно появляться сообщение $message
PHP:
скопировать код в буфер обмена
  1. $message = "<img src='images/bad.png'> <span class='false-address'>please enter a valid email address</span>";

CODE (javascript):
скопировать код в буфер обмена
  1. $("#status").html('<?=$message?>');

но из-за путаницы с кавычками сообщение в том виде, в каком ожидается, не отображается, и это логично в данной ситуации.
может быть кто-то уже сталкивался с данной проблемой, как обойти эту неприятную загвоздку? халп!

пс: пренебречь стилями и плагином нельзя.

код полностью:
PHP:
скопировать код в буфер обмена
  1. <?
  2. if (isset($_POST['email'])) {
  3.         if (preg_match('/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\.[a-z]{2,4}$/i',$_POST['email']))
  4.                 $message = "<img src='images/good.png'> <span class='true-address'>thanks, your address has been added</span>";
  5.         else $message = "<img src='images/bad.png'> <span class='false-address'>please enter a valid email address</span>";
  6. }
  7. ?>

CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.         $("#submit").click(function(){
  3.                 $("#status").hide();
  4.                 $("#status").html("<?=$message?>");
  5.                 $("#status").show('slow');
  6.                 return false;
  7.         });
  8. });

CODE (html):
скопировать код в буфер обмена
  1. <div id="status"></div>
2. caballero - 29 Февраля, 2012 - 02:50:30 - перейти к сообщению
$message = "<img src=\"images/bad.png\"> <span class=\"false-address\">please enter a valid email address</span>";
3. haveFun - 29 Февраля, 2012 - 03:24:13 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['email'])) {
  2.         if (preg_match('/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\.[a-z]{2,4}$/i',$_POST['email']))
  3.                 $message = "<img src=\"images/good.png\"><span class=\"true-address\">thanks, your address has been added</span>";
  4.         else $message = "<img src=\"images/bad.png\"><span class=\"false-address\">please enter a valid email address</span>";
  5. }

CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.         $("#submit").click(function(){
  3.                 alert("<?=$message?>");
  4. ...

почему-то пусто
4. caballero - 29 Февраля, 2012 - 03:36:08 - перейти к сообщению
Где пусто?
открой в браузере HTML код который пришел и посмотри что в alert прописано.
5. haveFun - 29 Февраля, 2012 - 03:54:19 - перейти к сообщению
о том и речь, что alert ничего не выводит. не могу понять почему.
6. Viper - 29 Февраля, 2012 - 09:12:10 - перейти к сообщению
haveFun Firebug вам в помощь. Случаем на странице нет других элементов с id="submit" ? Клик отрабатывает? Или отрабатывает, но появляется пустой alert?

в php
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['email'])) {
  2.         if (preg_match('/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\.[a-z]{2,4}$/i',$_POST['email'])) {
  3.                 $message = '<img src="images/good.png"> <span class="true-address">thanks, your address has been added</span>';
  4.         } else {
  5.                 $message = '<img src="images/bad.png"> <span class="false-address">please enter a valid email address</span>';
  6.         }
  7. }


в JS
CODE (javascript):
скопировать код в буфер обмена
  1. $("#submit").click(function(e){
  2.         e.preventDefault();
  3.         $("#status").hide().html('<?php echo $message; ?>').show('slow');
  4. });


У меня все работает. А у вас? Улыбка
7. haveFun - 03 Марта, 2012 - 01:58:23 - перейти к сообщению
Viper, Ваша конструкция все поломала( хотя все в общем-то и было сломано.
других сабмитов нет.
8. Viper - 03 Марта, 2012 - 08:47:50 - перейти к сообщению
haveFun firebug вам в помощь. Чудес не бывает.
9. broshurkaplus - 08 Марта, 2012 - 14:11:08 - перейти к сообщению
сталкивался с похожим только при загрузке. при транспортировке через транспорт, элемент напрямую echo вывести никогда не получалось. может не в тему но например в моём варианте было так
$res="бла бла бла" затем inneHTML в див.
впеременной $res все кавычки экранировал \'
сразу не получалось, смотрел код через браузер, возвращалась строка.естественно скриптом возвращаем.
по идее у вас в status то же смысл. попробуйте выводить простой тескт, затем усложните до вашего примера. добавть кавычки, но не добавляйте последнюю, экрпнирование последней, просмотрите код, должно показать код - строку, но не сработать, тогда увидите чего не хватает. тогда и исправите. я таким методом пробовал и гдето тут на форуме моя темка.
не знаю, может не в тему, но типа так, мне помогло.
ещё раз посмотрел
если тупо обработка во внешнем файле, то я обычно использую связку аякс квери, постом отправляю, возвращаю в элемент обычно echo - работает всё , не экранирую, проблемы в основном при работе через транспорт( загрузке),тогда надо смотреть.

вешай функцию на кнопку отправляй ф файл
<?
if (isset($_POST['email'])) {...
проверяй и эхом html(data)
100пудов должно работать, счас над таким сайтом работаю, всё построено на этом, всё работает кроссбраузерно, кроме возврата запуска видеоплеера, над чем сейчас и бьюсь, (вопрос в разделе).

 

Powered by ExBB FM 1.0 RC1