$.ajax( type: "POST" POST方法发送到php

12

我想使用jQuery中的POST方法来进行数据请求。这是html页面上的代码:

<form>
Title : <input type="text" size="40" name="title"/>
<input type="button" onclick="headingSearch(this.form)" value="Submit"/><br /><br />
</form>
<script type="text/javascript">
function headingSearch(f)
{
    var title=f.title.value;
    $.ajax({
      type: "POST",
      url: "edit.php",
      data: {title:title} ,
      success: function(data) {
        $('.center').html(data); 
      }
    });
}
</script>

以下是服务器上的PHP代码:

<?php

$title = $_POST['title'];
if($title != "")
{
    echo $title;
}

?>

POST 请求根本没有发送,我不知道为什么。这些文件在 wamp www 文件夹中的同一个文件夹中,所以至少 URL 应该没错。

1
在PHP中,return $title;不会打印任何内容,你需要使用echo $title; - MrCode
1
使用Firebug或类似工具来观察是否有任何请求被发出。 - MrCode
这些文件在同一个目录下吗? - Marcus Recck
请求头视图源 接受 / 接受编码 gzip,deflate 接受语言 en-us,en;q=0.5 缓存控制 无缓存 连接保持活动状态 内容长度 10 内容类型 应用程序/x-www-form-urlencoded; 字符集=UTF-8 主机本地主机 Pragma 无缓存 引荐人 http://localhost/homework/Site%20Beta/edit%20panel%20js/edit%20panel.htm 用户代理 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0 X-Requested-With XMLHttpRequest - user1201915
您的计算机上是否安装了PHP并在您的Web服务器上设置好了? - user4649737
显示剩余3条评论
6个回答

10

您需要使用 data: {title: title} 来正确地进行POST请求。

在PHP代码中,您需要使用echo输出该值,而不是使用return


5

检查标题是否有值。如果没有,则通过Id获取值。

<form>
Title : <input type="text" id="title" size="40" name="title" value = ''/>
<input type="button" onclick="headingSearch(this.form)" value="Submit"/><br /><br />
</form>
<script type="text/javascript">
function headingSearch(f)
{
    var title=jQuery('#title').val();
    $.ajax({
      type: "POST",
      url: "edit.php",
      data: {title:title} ,
      success: function(data) {
    $('.center').html(data); 
}
});
}
</script>

尝试这段代码。

在 PHP 代码中,使用 echo 而不是 return。只有这样,JavaScript 数据才会有其值。


感谢您在旧代码位置发布的新代码,但不幸的是它并没有起到帮助作用。 - user1201915
我在ThiefMaster回答后立即将其更改为echo。 - user1201915

1
尝试这个。
$(document).on("submit", "#form-data", function(e){
    e.preventDefault()
    $.ajax({
        url: "edit.php",
        method: "POST",
        data: new FormData(this),
        contentType: false,
        processData: false,
        success: function(data){
            $('.center').html(data); 
        }
    })
})

在表单中,按钮需要设置为 type="submit"

0
function signIn()
{
    var Username = document.getElementById("Username").value;
    var Password = document.getElementById("Password").value;

    $.ajax({
        type: 'POST',
        url: "auth_loginCode.jsp",
        data: {Username: Username, Password: Password},
        success: function (data) {
            alert(data.trim());
            window.location.reload();
        }
    });
}

0
我建议你使用一个更简单的方法 -
$.post('edit.php', {title: $('input[name="title"]').val() }, function(resp){
    alert(resp);
});

试试这个,我觉得它的语法比$ .ajax的简单...


我在写到Stack Overflow之前就已经尝试过了。我尝试了你的代码,但仍然没有改变,还是谢谢。 - user1201915
那它是做什么的,不发出警报吗?还是根本不发出警报? - manWe
你是否使用Firebug(在Mozilla中)或Chrome来检查是否有语法错误?(按F12键检查底部右侧是否没有红色叉号-单击它会显示脚本错误) - manWe

-1
contentType: 'application/x-www-form-urlencoded'

3
虽然这个命令可能回答了问题,但是提供关于为什么和/或如何回答这个问题的额外上下文信息可以提高其长期价值。如何回答问题 - Popo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接