【问题标题】:ajax success function receive information from phpajax成功函数从php接收信息
【发布时间】:2015-09-11 11:20:12
【问题描述】:

我无法使用 ajax 从 php 脚本接收数据。我有一个将信息发送到 php 脚本的表单。这只是一个测试。如果可行,我想从数据库中接收信息。

    $('.search-member-submit-btn').click(function () {
    var firstname = $("#search-member-firstname").val();
    var lastname = $("#search-member-lasttname").val();

    $.ajax({//AJAX request
        type: "POST",
        url: "/website/include/process/send_membersearchrequest_process.php",
        async: true,
        data: {firstname: firstname, lastname: lastname},
        success: function (data) {
            alert(data);
            $(".search-member-result-address").html(data);
        },
    });

});

HTML:

<div class="col-md-3">
     <div class="search-member-result-container">
          <address class="search-member-result-address">

          </address>
      </div>
</div>
<div class="search-member-form">
     <input class="search-member-input" id="search-member-lastname" placeholder="Name">
     <input class="search-member-input" id="search-member-firstname" placeholder="Vorname">
     <div class="search-member-submit-btn">suchen</div>
</div>

PHP

<?php 
    $lastname = $_POST['lastname'];
    echo $lastname;
?>

【问题讨论】:

  • 检查开发者工具的网络选项卡以查看来自 AJAX 调用的原始响应。
  • alert() 开火了吗?它显示了什么?

标签: php ajax callback


【解决方案1】:

添加响应类型,如:

 $.ajax({//AJAX request
        type: "post",
        url: "/website/include/process/send_membersearchrequest_process.php",
        async: true,
        data: {firstname: firstname, lastname: lastname},
        dataType: 'json', // You have to add this line
        success: function (data) {
            alert(data.response);
            $(".search-member-result-address").html(data.response);
        },
    });

还有你的 PHP 文件:

<?php 
$lastname = $_POST['lastname'];
echo json_encode(array('response' => $lastname));
exit();
?>

【讨论】:

  • 如果他的原始、更简单的代码没有,你为什么认为这会起作用?
  • data 应该是data.response
  • 感谢支持。现在它会提醒 [object Object]。为什么不显示姓氏字符串?
  • 警报(data.response);而不是警报(数据);
【解决方案2】:

我宁愿这样做:

Javascript

$.ajax({//AJAX request
        type: "POST",
        url: "/website/include/process/send_membersearchrequest_process.php",
        async: true,
        dataType:'json'
        data: {"firstname": firstname, "lastname": lastname},
        success: function (data) {
            alert(data.result);
            $(".search-member-result-address").html(data.result);
        },
    });

PHP

<?php 
      $lastname = $_POST['lastname'];
      $res = array("result" => $lastname);
      echo json_encode($res);
?>

像这样,你发送一个 json 到你的服务器并得到一个 json 作为回报。

【讨论】:

  • 虽然这是一种很好的风格,但并不能解释为什么他的原始代码不起作用。
  • 您在 AJAX 调用中缺少 dataType: 'json'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
  • 2020-10-08
  • 2014-01-25
相关资源
最近更新 更多