【问题标题】:$.ajax( type: "POST" POST method to php$.ajax( type: "POST" POST 方法到 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 状态和结果。

标签: php javascript jquery ajax 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
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-11
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        • 1970-01-01
        • 2013-10-06
        • 1970-01-01
        相关资源
        最近更新 更多