晓阳.
2017-10-24 13:41
采纳率: 66.7%
浏览 5.6k

通过ajax传入id查询数据问题

通过ajax 传入对应数据的id 查询数据,但是返回的数据并不能通过点击实时刷新
每次都需要手动刷新两次 数据才能对应.

<s:form method="post" action="TeacherActionUpdate" id="update" enctype="multipart/form-data">

        <div id="lights" class="white_contents" style="text-align: center;overflow-x:visible;">
            <table width='100%' cellpadding='0' cellspacing='0' style="text-align: center;position:absolute;left:55px;">
                <h3>修改教师信息</h3>
                <br/>
                <tr class="divcss5-b">
                    <td width="12.5%" style="text-align: right;">姓名&nbsp;&nbsp;&nbsp;</td>
                    <td style="text-align:left;">
                        <s:textfield name="tc.name" style="width:181px;height:28px;" cssClass="v_null" placeholder="请输入教师名称"/>
                    </td>
                </tr>
                <tr class="divcss5-b">
                    <td width="12.5%" style="text-align: right;">性别&nbsp;&nbsp;&nbsp;</td>
                    <td style="text-align:left;">
                        <select name="tc.sex" style="width:181px;height:28px;">
                            <option>男</option>
                            <option>女</option>
                        </select>
                    </td>
                </tr>
                <tr class="divcss5-b">
                    <td width="12.5%" style="text-align: right;">手机号&nbsp;&nbsp;&nbsp;</td>
                    <td width="12.5%" style="text-align:left;">
                        <s:textfield name="tc.phone" style="width:181px;height:28px;" cssClass="v_tel" placeholder="请输入11位手机号"/>
                    </td>
            </tr>
            </table>
            <div style="position:absolute;top:630px;left:150px">
                <a class="button button-khaki tijiaos">
                    <span>保存</span>
                </a>
                <a href="javascript:void(0)" onclick="document.getElementById('lights').style.display='none';" class="button button-khaki">
                    <span>关闭</span>
                </a>    
            </div>
        </div>
    </s:form>
    <script>
        $(function(){
    $(".teacherupdate").click(function(){

        var id=$(this).text();
        alert(id);

        document.getElementById('lights').style.display='block';
        $.ajax({
            url : "TeacherActionFindBy.action",
            cache:true,
            type : "POST",
            data:{'id':id},
            async: false,
            success: function(result){
                alert(1);
            }
        });


        return false;

    });
});
    </script>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • summerhummer 2017-10-25 01:41
    已采纳

    ajax里的cache,true的话会读缓存,可能真的到服务器上。
    假如上次访问了a.html,第二次的时候得到的是上次访问的a.html的结果,而不是重新到服务器获取。
    false的话会在url后面加一个时间缀,让它跑到服务器获取结果。
    cache只有GET方式的时候有效

    点赞 打赏 评论
  • 面向对象的夜猫子 2017-10-25 01:25

    url : "TeacherActionFindBy.action?t="+ new Date().getTime(),
    将请求接口后面加上时间戳,清除缓存试试,还有

    点赞 打赏 评论
  • 独家de记忆 2017-10-25 01:28

    按照楼上的办法,另外:**cache:true,**,你想实时刷新,这个还是设置false吧。

    点赞 打赏 评论
  • cache:true,去掉

    点赞 打赏 评论
  • LUCKSUNBOY 2017-10-25 01:40

    ajax还有一个error参数用来处理错误:
    ajax中加上这几句:
    error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert(XMLHttpRequest.status);
    alert(XMLHttpRequest.readyState);
    alert(textStatus);
    }
    然后运行看有什么问题,因为,async: false,所以因该不是异步的问题

    点赞 打赏 评论
  • Powerful_Current 2017-10-25 02:06

    可以尝试把点击方法放在$(function(){})外面

    点赞 打赏 评论

相关推荐 更多相似问题