Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вставка формы на AJAX
 
 автор: Trivium   (21.03.2008 в 17:08)   письмо автору
 
 

пытаюсь выполнить такой код
document.getElementById(id).innerHTML = document.getElementById(id).innerHTML +
 '<form action="javascript:requestdata(
document.getElementById(\'form1\'), \'' + id + '\');
" method="post" name="form1" id="form1">
<textarea name="text" cols=30 rows=3></textarea>
</dd><dd><input type="button" onclick="onview(document.form1.text.value, \''
         + id + '\');" name="view" value=" View " /> <input type="submit" name="submit" onclick="idt = \''
         + id + '\';" value=" Add " /></form>';

в ОПЕРЕ работает в IE выдает "неизвестная ошибка выполнения"
а вот если убрать вставку формы
document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + "<p>777</p>";

то работает.
в чем может быть проблема???

   
 
 автор: Antohins   (21.03.2008 в 17:18)   письмо автору
 
   для: Trivium   (21.03.2008 в 17:08)
 

Потестируйте в firefox с установленным firebug
он все ошибки находит ;)

   
 
 автор: Trivium   (21.03.2008 в 17:31)   письмо автору
 
   для: Antohins   (21.03.2008 в 17:18)
 

Так в опере всё нормально работает, файерфокс может и не найдёт ничё

   
 
 автор: Trivium   (21.03.2008 в 18:05)   письмо автору
 
   для: Antohins   (21.03.2008 в 17:18)
 

скачал, а как его ставить?

   
 
 автор: Antohins   (21.03.2008 в 18:15)   письмо автору
 
   для: Trivium   (21.03.2008 в 18:05)
 

firebug это плагин для firefox
после установки firefox скачайте firebug (качать нужно из firefoxa и тогда он определит его как плагин) после скачки он установиться. после всего этого в нижнем правом углу появится зеленая галочка(это значит что страница без ошибок) или красный крест(страница с ошибками)
после нажатия на ошибку он укажет на строку, в которой найдена ошибка.

Отличный дебаггер. юзайте

   
 
 автор: Trivium   (21.03.2008 в 18:28)   письмо автору
 
   для: Antohins   (21.03.2008 в 18:15)
 

ничего не определил... та в IE тоже есть шняга которая на строку указывает с ошибкой...

   
 
 автор: Antohins   (21.03.2008 в 18:31)   письмо автору
 
   для: Trivium   (21.03.2008 в 18:28)
 

ие - отстой
а фаербаг - отличный дебаггер.
дайте пожалуйста ссылку на скрипт, если он залит в интернет.
а лучше php код =)

   
 
 автор: Trivium   (21.03.2008 в 18:51)   письмо автору
 
   для: Antohins   (21.03.2008 в 18:31)
 

Это JS:
function showForm(id)
{
    document.getElementById("showcomm").innerHTML = '';
    if (oldid == id)
        return;
    if (oldid != '')
        document.getElementById(oldid).innerHTML = oldtext;
    oldtext = document.getElementById(id).innerHTML; 
// Вот тут выдаётся "неизвестная ошибка"
    document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + '<dd><form action="javascript:requestdata(document.getElementById(\'form1\'),
 \'' + id + '\');
" method="post" name="form1" id="form1"><textarea name="text" cols=30 rows=3></textarea>
</dd><dd><input type="button" onclick="onview(document.form1.text.value, \''
         + id + '\');" name="view" value=" View " />
 <input type="submit" name="submit" onclick="idt = \''
         + id + '\';" value=" Add " /></form></dd>';
    oldid = id;
    flag = false;
}


А это PHP:

    function getcomments($id, $status, $karma, 
$commkarma, $commmin, $lastcomment, $login)
    {
        $rs = mysql_query('SELECT id, text, date, login FROM comments WHERE parrent_id = '.$id);
        while ($a = mysql_fetch_array($rs))
        {
            $s .= "\r\n".'<div id="'.$a['id'].'"><dd id="'.$a['id'].'">'.date('d.m.Y H:i:s', $a['date']);
            $s .= '<div id="t'.$a['id'].'">'.stripslashes($a['text']).'</div>';
            $tmp = getcomments($a['id'], $status, $karma, $commkarma, $commmin, $lastcomment, $login);
            if (strlen($tmp))
                $s .= '<dl>'.$tmp.'</dl>';
            $s .= '<br /><a href="#" onclick="showForm('.$a['id'].');return false;">Answer</a>';
            $s .= '<br /><a href="#" onclick="showForm('.$a['id'].');return false;">Answer</a>';
            $s .= '</dd></div>'."\r\n";
        }
        return $s;
    }
    $rs = mysql_query('SELECT id, text, date, login FROM comments WHERE parrent_id = 0 AND blog_id = '.$blog);
    while ($a = mysql_fetch_array($rs))
    {
        $s .= '<div id="'.$a['id'].'"><dl>'.date('d.m.Y H:i:s', $a['date']);
        $s .= '<div id="t'.$a['id'].'">'.stripslashes($a['text']).'</div>';
        $s .= '<br /><a href="#" onclick="showForm('.$a['id'].');return false;">Answer</a>';
        $s .= getcomments($a['id'], $status, $karma, $commkarma, $commmin, $lastcomment, $login)."</dl>
</div>\r\n";
    }



В опере всё работает нормально а в IE неизвестная ошибка. в чём может быть прикол?

   
 
 автор: Lstasss   (21.03.2008 в 23:27)   письмо автору
 
   для: Trivium   (21.03.2008 в 18:51)
 

Во-первых, у Вас очень длинный код.
попробуйте провести вот такую последовательность действий:
document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + '(что там у вас было)'; 

->

var d=document;
var el=d.getElementById(id);
var ih=el.innerHTML;
ih+='(что там у вас было)';

т.е. упрощайте все объекты-переменные.
Так будет проще найти ошибку.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования