【问题标题】:How to get response from PHP using AJAX [duplicate]如何使用 AJAX 从 PHP 获得响应 [重复]
【发布时间】:2015-09-01 20:14:03
【问题描述】:

此代码中的想法是打印用户拥有的关注者数量...

这是我创建的代码

AJAX

$(document).ready(function() {
var usuario = $(".left h4").attr("data-id");
var seguidor = $("#user_account_info .profile_ball").attr("data-id");

$.ajax({
    type: "POST",
    url: "./include/php/followers.php",
    data: { user: usuario, follower: seguidor },
    success: function(data) { $(".right h4 i").html(data); }
});
return false;
});

PHP

<?php
$dsn = "mysql:host=localhost;dbname=tapehd;charset=utf8";
$usuario = "root";
$contraseña = "";

$conexion = new PDO($dsn, $usuario, $contraseña);
$resultado = null;

$user = $_POST["user"];
$seguidor = $_POST["follower"];

$sql = "SELECT count(*) as seguidores FROM seguidores WHERE id_canal = '$user'";

if(isset($resultado)){ $datos = $resultado->fetch(); }

$seguidores = $datos["seguidores"];

return $seguidores;
?>

我在 php 文件中返回结果,并在 php 文件中取回数据。我在要显示的 div 中打印,但它只显示一个错误:

注意:未定义变量:datos in C:\wamp\www\tapeHD\include\php\followers.php 在第 16 行

【问题讨论】:

  • 您没有检查查询是否有错误,只是假设它们有效。您需要在查询中添加一些错误检查。
  • 你永远不会执行你的查询。您有多个问题,与您今天早些时候提出的问题没有什么不同。如果您遵循人们给您的一些建议,将会减少您遇到的问题的数量。
  • 你的 $resultado 是 NULL,所以 if 语句中的 fetch 永远不会被执行,因此 $datos 是未定义的。
  • 注意 - return $seguidores; 必须是 echo $seguidores; 因为 return 不会打印出值

标签: php jquery ajax


【解决方案1】:

看起来问题是只有在设置了$resultado 时才设置$datos。在您的脚本中没有任何地方是实际执行的 SQL 查询。我会为$datos 设置一个默认值并执行您的查询。

【讨论】:

  • omg...谢谢老兄...如此愚蠢的失败。很抱歉打扰了
【解决方案2】:

看起来可能是因为 $resultado 为空,因此未设置。因此,当 if(isset($resultado)..... 的条件语句出现时,它实际上并没有执行并导致 $datos 填充。因此 $datos["seguidores"]; 在您尝试分配时不存在它到 $seguidores。

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多