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

Posted

技术标签:

【中文标题】$.ajax( type: "POST" POST 方法到 php【英文标题】:$.ajax( type: "POST" POST method to php 【发布时间】:2012-06-11 18:41:24 【问题描述】:

我正在尝试使用 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 没有错误。

【问题讨论】:

return $title; 不会在 PHP 中打印任何内容,您需要 echo $title; 前端ajax调用的错误是什么? 使用 Firebug 或类似的工具来观察是否有任何请求被发出 文件在同一个目录吗? 在那之前你真的加载过 jquery 吗?如果你的 js 工作正常,并且服务器上安装了 php,通过 ThiefMaster 的更改,它会正确地将数据返回到页面。是的,使用 FF 和 Firebug 来查看 POST 状态和结果。 【参考方案1】:

您需要使用data: title: title 才能正确发布。

在 PHP 代码中,您需要 echo 值而不是 returning 它。

【讨论】:

【参考方案2】:

检查title是否有任何值。如果不是,则使用 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 数据才会有价值。

【讨论】:

感谢我在旧代码的位置发布的代码,但不幸的是它没有帮助。 我在ThiefMaster回复后立即改成echo【参考方案3】:

试试这个

$(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"

【讨论】:

【参考方案4】:

我建议您使用更简单的方法 -

$.post('edit.php', title: $('input[name="title"]').val() , function(resp)
    alert(resp);
);

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

【讨论】:

我什至在写入堆栈溢出之前就尝试过了。我试过你的代码,但仍然没有改变,谢谢。 那么它有什么作用,什么都不提醒?还是根本不提醒? 您是使用 Firebug(在 Mozilla 中)还是 Chrome 来检查您是否有任何语法错误? (F12 检查右下角是否没有红十字 - 点击它会显示脚本错误)【参考方案5】:
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();
        
    );

【讨论】:

【参考方案6】:
contentType: 'application/x-www-form-urlencoded'

【讨论】:

虽然此命令可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。 How to Answer

以上是关于$.ajax( type: "POST" POST 方法到 php的主要内容,如果未能解决你的问题,请参考以下文章

Ajax post请求超时问题

关于ajax请求等待完成

PHP content-type为"application/json"的post过来的数据$_POST接受不到的问题

PHP content-type为"application/json"的post过来的数据$_POST接受不到的问题

ajax post值到处理页面之后,为啥不能使用header跳转呢

ajax,jquery,$.post/$.get异步刷新div,局部刷新页面