форма не отправляется на обновленную страницу - PullRequest
1 голос
/ 10 февраля 2012

У меня есть веб-приложение на PHP, и мне нужны переменные на этой странице для автоматического обновления. Поэтому я поместил эту обработку на другую страницу - "test.php" - которая загружается в этот div каждые 10 секунд.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
var auto_refresh = setInterval( function ()
{
 $('#refresh').load('test.php').fadeIn("slow");
 }, 10000);
</script>
</head>
<body>
<div id="refresh">
</div>
</body></html>

Проблема в том, что эта страница имеет форму, которая при нажатии не отправляет значения и выполняет обработку, как это должно быть. Без кода автообновления работает нормально. Как мне преодолеть эту проблему?

test.php содержит эту форму:

<form action="count.php" method="post">
<?php 

$votes = getVoteCount($popular[$i][1]); 

$voted=checkVoted($screenName,$id);?>

<td><img src="<?php echo $popular[$i][4]; ?>" width=60></td>
<td align="center"><CITE><?php echo "@".$username; ?></CITE>
                    <?php echo "<br >".$text.
                              "<br >".$votes." votes |";?>
    <?php 
    if($screenName!=$username && $voted==false){
    ?>
    <input type="hidden" name="addID" value="<?php echo $id;?>">
    <input type="hidden" name="username" value="<?php echo $screenName;?>">
    <INPUT TYPE="image" src="images/vote.png" name='vote' ALT="Submit Form" onMouseOver="this.src='images/vote_link.png'"
    onMouseOut="this.src='images/vote.png'" width="35" height="20" title="Click to Vote!"></form>
    <?php }else if($voted){ ?>
    <img src="images/voted.png" width="35" height="20" title="You have already voted">
        <?php    } else{
    echo "<img src='images/authored.png' width='40' height='20'>";
    }?>

1 Ответ

0 голосов
/ 11 февраля 2012

Поскольку вы перезагружаете страницу с помощью запросов ajax, вы больше не можете использовать

$("submit-button").click() 

или

$("submit-button").submit();

Вам нужно будет использовать либо live-делегат jquery, либосделать это.(Live больше не является рекомендуемым способом сделать это.

$("body").on("click", "submit-button", function()
 {
     //execute code here
 });

или

$("body").on("submit", "submit-form", function()
 {
     //execute code here
 });
...