javascript - 使用 jquery Ajax 和 php 脚本从 mysql 检索数据时出现问题

标签 javascript php jquery mysql ajax

我在使用 jquery ajax 和 php 脚本与 mysql 进行通信时,无法根据选中的单选按钮显示简单的 jpg 图片来处理我当前的 Web 应用程序项目。

这是我的 ajax.js 文件:

$('#selection').change(function() {
   var selected_value = $("input[name='kobegreat']:checked").val();

   $.ajax( {
       url: "kobegreat.php",
       data: {"name": selected_value},
       type: "GET",
       dataType: "json",

       success: function(json) {
           var $imgEl = $("img");
           if( $imgEl.length === 0) {
               $imgEl = $(document.createElement("img"));
               $imgEl.insertAfter('h3');
               $imgEl.attr("width", "300px");
               $imgEl.attr("alt", "kobepic");
           }
           $imgEl.attr('src', json["link"]);
           alert("AJAX was a success");
      },
      cache: false
  });
});

还有我的 kobegreat.php 文件:

<?php


   $db_user = 'test';
   $db_pass = 'test1';       

   if($_SERVER['REQUEST_METHOD'] == "GET") {
       $value = filter_input(INPUT_GET, "name");
   }

   try {
       $conn = new PDO('mysql: host=localhost; dbname=kobe', $db_user, $db_pass);
       $conn->setAttribute(PDO:: ATTR_ERRMODE, PDO:: ERRMODE_EXCEPTION);
       $stmt = $conn->prepare('SELECT * FROM greatshots WHERE name = :name');
       do_search($stmt, $value);
  } catch (PDOException $e) {
      echo 'ERROR', $e->getMessage();
  }

  function do_search ($stmt, $name) {
      $stmt->execute(['name'=>$name]);

      if($row = $stmt->fetch()) {
          $return = $row;
          echo json_encode($return);
      } else {
          echo '<p>No match found</p>;
      }
  }

?>

我试图将我的图像显示到的 HTML 代码:

<h2>Select a Great Kobe Moment.</h2>
<form id="selection" method="get">
   <input type="radio" name="kobegreat" value="kobe1" checked/>Kobe1
   <input type="radio" name="kobegreat" value="kobe2"/>Kobe2
   <input type="radio" name="kobegreat" value="kobe3"/>Kobe3
</form>

<div id="target">
    <h3>Great Kobe Moment!</h3>
</div>

最后我的数据库是这样设置的:

greatshots(name, link)

name         link
------       --------
kobe1        images/kobe1
kobe2        images/kobe2
kobe3        images/kobe3

我知道 php 脚本成功地从数据库中获取了写入数据,因为目标 div 下显示的是这样的:

{"name":"kobe3","0":"kobe3","link":"images\/kobe3","1":"images\/kobe3"}

而且我知道 ajax 函数正在返回成功,因为当我选择一个单选按钮时,成功的 ajax 请求的警报会提醒我。所以我不确定哪里出了问题或如何解决我的问题。

最佳答案

$imgEl.attr('src', json["link"]);

应该是

$imgEl.attr('src', data.link);

关于javascript - 使用 jquery Ajax 和 php 脚本从 mysql 检索数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36644645/

相关文章:

php - ZF2 如何或在哪里()

javascript - 在javascript中以百分比而不是像素计算表格宽度

javascript - 将对象循环到另一个对象/数组中

javascript - Websocket 和 Perl CGI

php - 创建对象时的反斜杠语法

php - Ajax删除复选框删除第一个或上一个,不是必需的 - jquery

javascript - 三元运算符内的赋值,反模式?

javascript - React 16.6 lazy/Suspense DOM 异常

javascript - 使用/不使用 jquery 或 ajax 的 php 文件下载进度条

javascript - Datatables 表格标题中的 Bootstrap 工具提示闪烁