AJAX-форма не находит функцию JavaScript - PullRequest
0 голосов
/ 12 мая 2011

Я не могу понять, что я делаю с этим, независимо от того, сколько вещей я пытаюсь. Я просмотрел Google для связанной проблемы, но не нашел ничего определенного. Надеюсь, кто-нибудь сможет мне помочь.

Скрипт запускается через внешний файл .js, вызывая список музыкальных альбомов, а затем перечисляет песню альбома, выбранного с помощью ajax. Затем пользователь может редактировать или удалять песни. Все работает нормально, пока я не отправлю отредактированную информацию через форму. Когда я нажимаю кнопку отправки, я получаю сообщение об ошибке веб-разработчика "updateSong is not function"

Вот форма:

    <?php
    include("database.php");

    $song =  $_GET['song'];

    $query = "SELECT * FROM song INNER JOIN genre ON song.gID = genre.gID INNER JOIN album ON song.alID = album.alID WHERE sID = '$song'";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result)) {
    echo ("

    <form action='#' method='POST' name='updateSong' onSubmit='updateSong(\"$song\")'>
    <input name='songName' type='text' value='$row[songName]' />
    <input type='text' id='genreSearch' name='genre' alt='Genre Search' onkeyup='searchSuggest();' autocomplete='off' value='$row[genreName]'/>
    <div id='genre_search_suggest'></div>
    <input name='songURL' type='text' value='$row[songUrl]' />
    <input name='sID' type='hidden' value='$row[sID]' />
    <input name='Submit' type='Submit' value='Update Song' />
    </form>

    ");
    }

    ?>

Вот JavaScript:

    function updateSong(sID) {
if(ajax) {
var song = sID;
alert("2");
ajax.open('get', './song_update.php' + encodeURIComponent(sID));
alert("3");
ajax.onreadystatechange = function() {
handleResponse(ajax);
}
ajax.send(null);
return false;

}
    }

// EDIT // Вот страница, на которую он загружен. Я удалил ненужные вещи, связанные с этим вопросом.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    <link href="artistPageStyle.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript" src="javascripts/artistAjax.js"></script>

    </head>
    <body>

    <div id="mediaPlayerBox">

    <div id="artistAlbumList">
    <?php 
$query = "SELECT * FROM `album` INNER JOIN artist ON album.aID = artist.aID WHERE artist.LoginKey = '$token'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
echo ("<div id='artistAlbumBox'><div id='artistAlbum'><a href='#' onclick='loadAlbum($row[alID])'><img src='$row[albumCover]' width='75px' height='75px' border='0px' ></a></div><div id='artistAlbumLabel'>$row[albumName]</div></div>");
 }
?>
</div>

    </div>

    </body>
    </html>

Ответы [ 3 ]

0 голосов
/ 12 мая 2011

попробуйте выполнить onSubmit = 'return updateSong ($ song)'

0 голосов
/ 12 мая 2011

Это говорит о том, что это не функция, потому что она не загружена, вы вообще загружаете внешний скрипт на странице отображения?

0 голосов
/ 12 мая 2011

Не должно ли быть: onSubmit='updateSong("$song")'?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...