0

这是我的代码:

<div id="test"></div>

<form id="form-lecturer-login"> 

    <table>
        <tbody>
        <tr>
            <td>
                <label class="label">Username : </label><br>
                <input name="username" value="" type="text">
            </td>
        </tr>
        <tr>
            <td>
                <label class="label">Password : </label><br>
                <input name="password" value="" type="text">
            </td>
        </tr>
    </tbody>
    </table>
    <input value="Log In" type="submit">
</form>

<script type="text/javascript">
$('#form-lecturer-login').submit(function(){
    $.post("../php/lecturer_login.php",$(this).serialize(),
    function(data){
    $('#test').html(data[0]).show();
    }, "json");
});
</script>

在讲师_login.php 中:

<?php
$stack = array();
array_push($stack,"test");
echo json_encode($stack);    
?>

注意:我知道我正在传递我不使用的数据。仅用于测试目的。

'test' div 不会将文本更改为“test”。

我正在通过示例学习这一点,并且我遵循了 jquery 文档。我错过了什么?除了:

<script type="text/javascript" src="../js/jquery-1.4.2.min.js" ></script>

在我需要的文件头中?

4

2 回答 2

0

我会做类似的事情

<?php
$stack = array();
$stack['info']='test';
echo json_encode($stack);    
?>

并且安装了 $.post 我更喜欢 $.ajax

       $.ajax({
                url:'../php/lecturer_login.php',
                type:'POST',
                dataType:'json',
                success:function (result) {
                    $('#test').html(result.info);//since info is the key of the json maybe the same for $.post
                }
        });

我忘了你需要

event.preventDefault();
于 2013-02-27T21:06:38.357 回答
0

我认为问题在于您没有阻止回发。

尝试这样做:

<script type="text/javascript">
$('#form-lecturer-login').submit(function(event){
   event.preventDefault();
   ...

向您的函数添加一个参数并调用 preventDefault() 方法。

于 2013-02-27T21:06:52.687 回答