Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax无法工作_Php_Jquery_Ajax_Twitter Bootstrap_Web Deployment - Fatal编程技术网

Php Ajax无法工作

Php Ajax无法工作,php,jquery,ajax,twitter-bootstrap,web-deployment,Php,Jquery,Ajax,Twitter Bootstrap,Web Deployment,我在一个json对象中从Yahoo finance中提取股票符号,当用户开始在搜索框中键入公司名称或符号时,我尝试将它们显示为下拉菜单 Typeahead不是搜索框中的下拉菜单。这是我目前掌握的代码 例如,如果我在suggest.php中转储$data或$result,同时用goog替换{$\u POST['symbol']},我将得到一个数组。因此,我认为要么suggest.php echo没有返回任何内容,要么suggest.php没有从quote.js文件调用 如果我删除suggest.p

我在一个json对象中从Yahoo finance中提取股票符号,当用户开始在搜索框中键入公司名称或符号时,我尝试将它们显示为下拉菜单

Typeahead不是搜索框中的下拉菜单。这是我目前掌握的代码

例如,如果我在suggest.php中转储$data或$result,同时用goog替换{$\u POST['symbol']},我将得到一个数组。因此,我认为要么suggest.php echo没有返回任何内容,要么suggest.php没有从quote.js文件调用

如果我删除suggest.php中的If语句并用goog替换{$\u POST['symbol']},然后转到
http://localhost/suggest.php
不应该回显打印内容吗

感谢您的帮助。我是网络开发新手,正在努力学习

quote.js

$(document).ready(function() {

  // create autocomplete
  $('#form-quote input[name=symbol]').typeahead({

      // load autocomplete data from suggest.php
      source: function(query, callback) {
          $.ajax({
              url: '../suggest.php',
              type: 'POST',
              dataType: 'json',
              data: {
                  symbol: query
              },
              success: function(response) {
                  callback(response.symbols);

              }
          });
      }
  });

  // load data via ajax when form is submitted
  $('#form-quote').on('click', function() {

      // determine symbol
      var symbol = $('#form-quote input[name=symbol]').val();

      // send request to quote.php
      $.ajax({
          url: 'quote.php',
          type: 'POST',
          data: {
              symbol: symbol
          },
          success: function(response) {
              $('#price').text(response);
          }
      });


      return false;
  });

});
quote.php

<?php

//configuration
require("../includes/config.php");

//if form was submitted 

if($_SERVER["REQUEST_METHOD"] == "POST"){

    $stock = lookup(strtoupper($_POST["symbol"]));

    if(empty($_POST["symbol"])){

        //echo "You must enter a stock symbol";

    }else if($_POST["symbol"]){

    $price = number_format($stock['price'], 2);

    echo "A share of {$stock['name']} costs $$price";
    }
}

else{

    // render portfolio
render("stock_search.php", ["title" => "Get Quote"]);
}   
?>

我看到一些打字错误。如果这是一个测试服务器,您可能希望在php中启用错误

无论如何,根据这段代码:

// load suggestion data
$data = @file_get_contents("http://d.yimg.com/aq/autoc?query=GOOG&region=US&lang=en-US&callback=YAHOO.util.ScriptNodeDataSource.callbacks");

// parse yahoo data into a list of symbols
$patt = array("/^YAHOO\.util\.ScriptNodeDataSource\.callbacks\(/","/\)$/");
$repl = array("","");
$json = json_decode(preg_replace($patt,$repl,$data));

foreach ($json->ResultSet->Result as $stock)
    $result[] = $stock;

echo json_encode(array('symbols' => $result));
我得到以下输出:

{"symbols":[{"symbol":"GOOG","name":"Google Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"^UVSPY","name":"NASDAQ OMX Alpha GOOG vs. SPY","exch":"NAS","type":"I","exchDisp":"NASDAQ","typeDisp":"Index"},{"symbol":"GOOG-U.TI","name":"GOOGLE-A","exch":"TLO","type":"S","exchDisp":"TLX Exchange ","typeDisp":"Equity"},{"symbol":"GOOG11BF.SA","name":"GOOGLE -DRN MB","exch":"SAO","type":"S","exchDisp":"Sao Paolo","typeDisp":"Equity"},{"symbol":"GOOG.MX","name":"Google Inc.","exch":"MEX","type":"S","exchDisp":"Mexico","typeDisp":"Equity"},{"symbol":"GOOF.EX","name":"GOOGLE-A","exch":"EUX","type":"S","exchDisp":"EUREX Futures and Options Exchange ","typeDisp":"Equity"},{"symbol":"GGQ1.F","name":"GOOGLE-A","exch":"FRA","type":"S","exchDisp":"Frankfurt","typeDisp":"Equity"},{"symbol":"GGQ1.MU","name":"GOOGLE-A","exch":"MUN","type":"S","exchDisp":"Munich","typeDisp":"Equity"},{"symbol":"GGQ1.HA","name":"GOOGLE-A","exch":"HAN","type":"S","exchDisp":"Hanover","typeDisp":"Equity"},{"symbol":"GGQ1.DE","name":"GOOGLE-A","exch":"GER","type":"S","exchDisp":"XETRA","typeDisp":"Equity"}]}

纠正数据获取和解析后,如果您使用的是Bootstrap 2.1+,您应该能够实现对PHP代理的ajax调用,如中所述。(如果链接没有跳转到“Bootstrap 2.1”,请在页面中搜索。)

我看到一些打字错误。如果这是一个测试服务器,您可能希望在php中启用错误

无论如何,根据这段代码:

// load suggestion data
$data = @file_get_contents("http://d.yimg.com/aq/autoc?query=GOOG&region=US&lang=en-US&callback=YAHOO.util.ScriptNodeDataSource.callbacks");

// parse yahoo data into a list of symbols
$patt = array("/^YAHOO\.util\.ScriptNodeDataSource\.callbacks\(/","/\)$/");
$repl = array("","");
$json = json_decode(preg_replace($patt,$repl,$data));

foreach ($json->ResultSet->Result as $stock)
    $result[] = $stock;

echo json_encode(array('symbols' => $result));
我得到以下输出:

{"symbols":[{"symbol":"GOOG","name":"Google Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"^UVSPY","name":"NASDAQ OMX Alpha GOOG vs. SPY","exch":"NAS","type":"I","exchDisp":"NASDAQ","typeDisp":"Index"},{"symbol":"GOOG-U.TI","name":"GOOGLE-A","exch":"TLO","type":"S","exchDisp":"TLX Exchange ","typeDisp":"Equity"},{"symbol":"GOOG11BF.SA","name":"GOOGLE -DRN MB","exch":"SAO","type":"S","exchDisp":"Sao Paolo","typeDisp":"Equity"},{"symbol":"GOOG.MX","name":"Google Inc.","exch":"MEX","type":"S","exchDisp":"Mexico","typeDisp":"Equity"},{"symbol":"GOOF.EX","name":"GOOGLE-A","exch":"EUX","type":"S","exchDisp":"EUREX Futures and Options Exchange ","typeDisp":"Equity"},{"symbol":"GGQ1.F","name":"GOOGLE-A","exch":"FRA","type":"S","exchDisp":"Frankfurt","typeDisp":"Equity"},{"symbol":"GGQ1.MU","name":"GOOGLE-A","exch":"MUN","type":"S","exchDisp":"Munich","typeDisp":"Equity"},{"symbol":"GGQ1.HA","name":"GOOGLE-A","exch":"HAN","type":"S","exchDisp":"Hanover","typeDisp":"Equity"},{"symbol":"GGQ1.DE","name":"GOOGLE-A","exch":"GER","type":"S","exchDisp":"XETRA","typeDisp":"Equity"}]}

纠正数据获取和解析后,如果您使用的是Bootstrap 2.1+,您应该能够实现对PHP代理的ajax调用,如中所述。(如果链接没有跳转到“Bootstrap 2.1”,请在页面中搜索。)

谢谢您的回复。我确实得到了和你一样的结果。有没有办法检查ajax功能是否正常工作?我仍然无法获取下拉菜单。是否更新?你说我修复了PHP输出,但你没有接受我的答案。您是否根据我链接的答案更新了ajax调用?我通过您的更改获得了结果,但当我尝试从ajax获得结果时,仍然无法获得下拉菜单。感谢您的回复。我确实得到了和你一样的结果。有没有办法检查ajax功能是否正常工作?我仍然无法获取下拉菜单。是否更新?你说我修复了PHP输出,但你没有接受我的答案。您是否根据我链接的答案更新了ajax调用?我通过您的更改获得了结果,但当我尝试从ajax获得结果时,仍然无法获得下拉菜单。