php - 获取 JSON - JQuery 和 PHP

标签 php javascript jquery html

我有一个 HTML/JQuery 前端。我希望我的 HTML 页面有一个链接,单击该链接会将数据发布到 php 文件并解码应打印到文档窗口的 JSON 响应。

编辑:

这是我根据 @Kyle 的回答更新的 HTML/JQuery 代码:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Demo</title>
    <style>
       a.test { font-weight: bold; }
    </style>
  </head>
  <body>
    <a href="">display message</a>
    <script src="jQuery/jQuery.js"></script>
    <script>
    $(document).ready(function(){                     
      $(function(){
         $("a").click(function(e){
            e.preventDefault();
            getmessage = "Yes";
            getmessage = encodeURIComponent(getmessage);//url encodes data
            $.ajax({
               type: "POST",
               url: "http://dev.speechlink.co.uk/David/test.php",
               data: {'getmessage': getmessage},
               dataType: "json",
               success: function(data) {
                  json = $.parseJSON(data);
                  $("#message_ajax").html("<div class='successMessage'>" + json.message + "</div>");
               }
            });
         });
      });
  });
  </script>
  <div id = "message_ajax"></div>
  </body>
</html>

这里是test.php

<?php
 if(isset($_POST['getmessage'])){
  $dbh = connect();
  $message = mysql_real_escape_string($_POST['message']); 
  $query =  mysql_query("SELECT message FROM messages WHERE id = '46'") or die(json_encode(array('message' => "didn't query"));
  if($query){
    echo json_encode(array('message' => 'Successfully Submitted Data'));
  }else{
    echo json_encode(array('message' => 'Error Submitting Data'));
  }
  mysql_close();
}
?>

后端设置得很好...所以我知道问题不在于那里。我认为这是我的语法问题,但我一生都无法让 div 显示响应。我已经尝试了几个小时。我认为潜在的许多问题之一是我没有在 jQuery 函数中正确发布“getmessage”...我是 jQuery 菜鸟,这可能回答了您的大部分问题...

编辑:

使用上面的代码,我设法在按下链接后将以下内容写入文档窗口:

[Object object]

我的问题是如何让它打印 JSON 编码的 PHP 响应中的实际值..

最佳答案

除了已经提到的事情之外,事实上,您的 PHP 脚本不会返回 valid JSON也可能是一个问题。它只是打印

Successfully Submitted Data

到非 JSON 的页面。尝试:

echo json_encode(array('message' => 'Successfully Submitted Data'));

或者使用纯 HTML。

关于php - 获取 JSON - JQuery 和 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986091/

相关文章:

php - 如何列出 Symfony 中所有内置/预定义的 Monolog channel ?

javascript - 使用 javascript 显示某个套餐的值(value)(价格)

php - 在 PHP 中确定字体样式

javascript - 如何在 JavaScript 中创建数组?

javascript - 如何实现滚动条

javascript - 未捕获的类型错误 : undefined is not a function

php - 如何使用两个 id 在 laravel 中设置关系?

javascript - 在成功函数内的 AJAX 请求中访问 "data"对象

jQuery UI slider 固定值

javascript - 如何通过javascript在没有url和datetime的情况下打印