[Вопрос] jquery, obj.html() или obj.innerHTML

Discussion in 'PHP' started by Naydav, 22 Apr 2008.

  1. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Вот заметил такое вот свойство у jquery


    Пример надуманный, но хорошо демонстрирует проблему:

    Вообщем много обычного HTML кода
    PHP:
    $new =<<<CONTENT
            
            <div id="content" style="float:left; width:100%;">

            <h1>Members: </h1>        
              <table class="TableMain" cellpadding="0" cellspacing="0"/>
                  <thead>
                    <tr align="center">
                        <th width="125" id="header">id</td>                    
                        <th width="300" id="header">EMAIL</td>
                        <th width="*" id="header">&nbsp;</td>
                        <th width="55" id="header">EDIT</td>

                        <th width="55" id="header">DELETE</td>
                     </tr>
                </thead>                <tr align="center">
                        <td><a href="/inside/member/edit/39/">39</a></td>                  
                      <td><a href="/inside/member/edit/39/">ntest@test.new</a></td>
                      <td><a href="/inside/gallery/39/" style="text-decoration:underline;">Edit gallery</a></td>
                      <td><a href="/inside/member/edit/39/"><img src="/_admin/templates/images/b_edit.png" border="0" width="16" height="16"></a></td>                  
                      <td><a href="javascript: onDelete(39);"><img src="/_admin/templates/images/b_drop.png" border="0" width="16" height="16"></a></td>

                    </tr>                <tr align="center">
                        <td><a href="/inside/member/edit/47/">47</a></td>                  
                      <td><a href="/inside/member/edit/47/">test@test.ua</a></td>
                      <td><a href="/inside/gallery/47/" style="text-decoration:underline;">Edit gallery</a></td>
                      <td><a href="/inside/member/edit/47/"><img src="/_admin/templates/images/b_edit.png" border="0" width="16" height="16"></a></td>                  
                      <td><a href="javascript: onDelete(47);"><img src="/_admin/templates/images/b_drop.png" border="0" width="16" height="16"></a></td>
                    </tr>                <tr align="center">

                        <td><a href="/inside/member/edit/48/">48</a></td>                  
                      <td><a href="/inside/member/edit/48/">test@test.test</a></td>
                      <td><a href="/inside/gallery/48/" style="text-decoration:underline;">Edit gallery</a></td>
                      <td><a href="/inside/member/edit/48/"><img src="/_admin/templates/images/b_edit.png" border="0" width="16" height="16"></a></td>                  
                      <td><a href="javascript: onDelete(48);"><img src="/_admin/templates/images/b_drop.png" border="0" width="16" height="16"></a></td>
                    </tr>                <tr align="center">
                        <td><a href="/inside/member/edit/55/">55</a></td>                  
                      <td><a href="/inside/member/edit/55/">vff@effe.efe</a></td>

                      <td><a href="/inside/gallery/55/" style="text-decoration:underline;">Edit gallery</a></td>
                      <td><a href="/inside/member/edit/55/"><img src="/_admin/templates/images/b_edit.png" border="0" width="16" height="16"></a></td>                  
                      <td><a href="javascript: onDelete(55);"><img src="/_admin/templates/images/b_drop.png" border="0" width="16" height="16"></a></td>
                    </tr>            <!--<tfoot>
                  <tr>
                    <td colspan="5"><input type=button value="Add member" class=inpButton onclick="window.location = '/inside/member/add/';"></td>
                  </tr>
                </tfoot>-->
              </table><input type=button value="Add member" class=inpButton onclick="window.location = '/inside/member/add/';">
            </div>
    CONTENT;

    // Убираем переносы
    $new ereg_replace("\r\n"""$new);
    // Экранируем двойные кавычки
    $new ereg_replace("\"""\\\""$new);

    Убираем переносы и Экранируем двойные кавычки
    Это для того, что бы, код был в одну строку, иначе не сработает obj.innerHTML = [только строка, без переходов на новую]



    Идем дальше:
    PHP:
    <body>
    <div id="content"></div>
    <script>
        // $("#content").html("<?=$new?>");  НЕ РАБОТАЕТ
            var obj = document.getElementById("content");
        obj.innerHTML = "<?=$new?>"; // РАБОТАЕТ!!!
    </script>
    </body>
    Вопрос:
    Какие еще теги нужно заменять, что сработал и вариант с jquery, (пробывал - "\n", "\t", "'")
    Если вообще заработает

    ps возможно это символ - "@"
     
    #1 Naydav, 22 Apr 2008
    Last edited: 22 Apr 2008
  2. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Нужно смотреть на код, который получается в итоге, т.е. после того, как отработает php и получится страница.
    P.S. может, не работает потому, что закомментировано? %)
     
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    .append ?
     
  4. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    .append - Не сработает, так же как и

    var content = "test
    test";
    obj.innerHTML = content;

    так как $new (var content ) - содержит недопустимые символы, такие как перенос строки и @, нужно добавить $new = ereg_replace("@", "at", $new);

    придеться на это обращать внимание...

    ps для аякса использую библиотеку xajax, интересно какое мнение относительно нее у античатовцев
     
  5. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Это:
    Code:
    var content = "test
    test";
    не работает по правилам JS, библиотека тут не при чём.
    Читаем спецификацию ecma-262:
     
  6. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    astrologer
    Я о том, что jquery не пропускает еще и "@"