1

我找到了一个 ajax 表单脚本来显示数据而无需重新加载页面。一切都很好,但我想在提交表单时在表格中显示变量值。这是我找到Jquery ajax 教程的链接,下面是我的代码。请帮我。

索引.php

<div id="wrapper">
  <form action="" id="demoForm" method="post">
    <fieldset>
      <legend>Demo form</legend>
      <span style="font-size: 0.9em;">This ajax submit demo form.</span>
      <p>
        <label for="email">E-Mail:</label>
        <input type="text" name="email" id="email" value="" />
      </p>
      <p>
        <input type="submit" name="submit" id="submit" style="float: right; clear: both; margin-right: 3px;" value="Submit" />
      </p>
    </fieldset>
  </form>

  <div id="message" style="display: none;"> </div>
  <div id="waiting" style="display: none;"> Please wait<br />
    <img src="images/ajax-loader.gif" title="Loader" alt="Loader" /> 
  </div>

</div>
<script type="text/javascript" src="js/jquery/jquery-1.3.2.js"></script> 
<script type="text/javascript" src="js/ajaxSubmit.js"></script>

ajaxSubmit.php

$(document).ready(function(){
    $('#submit').click(function() {

        $('#waiting').show(500);
        //$('#demoForm').hide(0);
        $('#message').hide(0);

        $.ajax({
            type : 'POST',
            url : 'post.php',
            dataType : 'json',
            data: {
                email : $('#email').val()
            },
            success : function(data){
                $('#waiting').hide(500);
                $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
                    .text(data.msg).show(500);
                if (data.error === true)
                    $('#demoForm').show(500);
            },
            error : function(XMLHttpRequest, textStatus, errorThrown) {
                $('#waiting').hide(500);
                $('#message').removeClass().addClass('error')
                    .text('There was an error.').show(500);
                $('#demoForm').show(500);
            }
        });

        return false;
    });
});

post.php

<?php
sleep(3);

if (empty($_POST['email'])) {
    $return['error'] = true;
    $return['msg'] = 'You did not enter you email.';
}
else {
    $return['error'] = false;
    $return['msg'] = 'You\'ve entered: ' . $_POST['email'] . '.';
}

echo json_encode($return);
?>
4

1 回答 1

0

试试这个:

success : function(data){
    data = JSON.parse(data);
    $('#waiting').hide(500);
    $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
        .text(data[0].msg).show(500);
    if (data[0].error === true)
        $('#demoForm').show(500);
},
于 2013-01-17T18:18:14.373 回答