Zdarzenie onSubmit nie wywołuje funkcji

0

Mam formularz na stronie i chcę, aby zdarzenie onsubmit wywoływała funkcje. Przez pół roku ten kod działał a teraz jest problem, bo funkcja w ogóle nie działa. Oto formularz

<?php
ob_start();
?>
<form action="public_files/post.php?id=<?php echo $id; ?>" method="post"
onsubmit="postComment(<?php echo $id; ?>, this); return false;">
<table>
<tr>
<td><label for="name_<?php echo $id; ?>">Imię: </label></td>
<td><input style="width: 100%;" type="text" name="person_name" id="name_<?php echo $id; ?>"/></td>
</tr>
<tr>
<td><label for="comment_<?php echo $id; ?>">Komentarz: </label></td>
<td><textarea rows="7" cols="50" name="post_comment" id="comment_<?php echo $id; ?>"/></textarea></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><input type="submit" value="Dodaj komentarz"/></td>
</tr>
</table>
</form>
<?php
// doł±czenie kodu współużytkowanego
include '../lib/common.php';
include '../lib/db.php';
function Konwertuj_na_utf8($string) { 
	$utf8=array(
	"%u0104"=>"Ą",
	"%u0106"=>"Ć",
	"%u0118"=>"Ę",
	"%u0141"=>"Ł",
	"%u0143"=>"Ń",
	"%u00D3"=>"Ó",
	"%u015A"=>"Ś",
	"%u0179"=>"Ź",
	"%u017B"=>"Ż",
	"%u0105"=>"ą",
	"%u0107"=>"ć",
	"%u0119"=>"ę",
	"%u0142"=>"ł",
	"%u0144"=>"ń",
	"%u00F3"=>"ó",
	"%u015B"=>"ś",
	"%u017A"=>"ź",
	"%u017C"=>"ż"
	);	
	return str_replace(array_keys($utf8),array_values($utf8),$string);	
}

// odczytanie komentarzy do bież±cego wpisu
$id = (int)$_GET['post_id'];
$query = sprintf('SELECT PERSON_NAME, POST_COMMENT, ' .
    'UNIX_TIMESTAMP(COMMENT_DATE) AS COMMENT_DATE FROM %sBLOG_COMMENT ' .
    'WHERE POST_ID = %d ORDER BY COMMENT_DATE DESC',
    DB_TBL_PREFIX, $id);
$result = mysql_query($query, $GLOBALS['DB']);

if (mysql_num_rows($result))
{
	echo '<div class="komentarze">';
    while($row = mysql_fetch_assoc($result))
    {
		echo '<p><span class="komentarz">'.Konwertuj_na_utf8(htmlspecialchars($row['PERSON_NAME'])). '</span>' . 
            ' '.date('d.m.Y H:i:s', $row['COMMENT_DATE']). '<br/>';
        echo Konwertuj_na_utf8(htmlspecialchars($row['POST_COMMENT'])).'</p>';
    }
	echo '</div>';
}
mysql_free_result($result);
mysql_close($GLOBALS['DB']);
ob_end_flush();
?>

A to funkcje JavaScript

// odczytanie istniej±cych komentarzy przy użyciu "AJAX" 
window.httpObj;
function fetchComments(id)
{
    var div = document.getElementById('comments_' + id);

    var url = 'public_files/fetch.php?post_id=' + id + "&nocache=" + 
        (new Date()).getTime();

    window.httpObj = createXMLHTTPObject();
    window.httpObj.open('GET', url , true);
    window.httpObj.onreadystatechange = function()
    {
        // wypełnienie pól
        if (window.httpObj.readyState == 4 && httpObj.responseText)
        {
            div.innerHTML = httpObj.responseText;
        }
    }
    window.httpObj.send(null);
}

// zapisanie komentarza przy użyciu "AJAX"
function postComment(id, form)
{
    var url = form.action + "&nocache=" + (new Date()).getTime();
    var data = 'person_name=' + escape(form.person_name.value) +
        '&post_comment=' + escape(form.post_comment.value);

    window.httpObj = createXMLHTTPObject();
    window.httpObj.open('POST', url , true);
    window.httpObj.setRequestHeader('Content-type',
        'application/x-www-form-urlencoded');
    window.httpObj.setRequestHeader('Content-length', data.length);
    window.httpObj.setRequestHeader('Connection', 'close');

    window.httpObj.onreadystatechange = function()
    {
        // wypełnienie pól
        if (window.httpObj.readyState == 4 && window.httpObj.responseText)
        {
           if (window.httpObj.responseText.indexOf('OK')==0)
            {				
                fetchComments(id);
            }
            else
            {
                alert('Błąd w trakcie zapisywania komentarza.');
            }
        }
    }
    window.httpObj.send(data);
    return false;
}

Kod jest z książki i do tej pory działał. Gdzie jest błąd?

1

Człowieku wywal tę książkę w cholerę...
Co mówi konsola JS?

0

Już sobie poradziłem i działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1