【问题标题】:sending data with the help of post method in ajax在ajax中使用post方法发送数据
【发布时间】:2014-03-07 08:56:19
【问题描述】:

我有一个带有隐藏字段的表单,并希望将值发送到另一个 php 页面处理请求并将其显示在 div 标记中。但是,AJAX 似乎没有发布隐藏字段值 下面是我的表单和ajax代码

<form name='cc' method='post' onsubmit='return disp()'>
<input name='id' type='hidden' value='" . $id. "'/>
<input type='submit' name='btnr' value='Display' />
 </form>
 <script>
function disp(){
    var xmlhttp;    

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("display").innerHTML=xmlhttp.responseText;
        }
    }
    var id=document.forms["cc"]["id"].value;
    xmlhttp.open("POST","fetch.php",true);

    xmlhttp.send(id);
}
</script>

【问题讨论】:

    标签: php ajax


    【解决方案1】:

    应该是:

    xmlhttp.send('id=' + urlencode(id));
    

    您需要包含表单元素名称,以便 PHP 可以将其放入 $_POST

    你还需要在disp()的末尾加上return false;,以防止正常的表单提交,这会重新加载页面。

    【讨论】:

    • Javascript 控制台有错误吗?您是否检查了开发者工具的网络选项卡以查看实际发送的内容?
    • 如果我使用 get 方法,那么一切正常,或者如果我使用没有 ajax 的 post 方法,那么一切正常,但不知道如果我同时使用 post 方法和 ajax 会出现什么问题跨度>
    • 更新了答案:你需要return false
    • 不,PHP 在填写$_POST 时会自动执行此操作。
    • Javascript 控制台有错误吗?您是否检查了开发者工具的网络选项卡以查看实际发送的内容?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2012-12-25
    相关资源
    最近更新 更多