简体   繁体   中英

How to pass json data from one javascript to another

Guys here the first script is designed to take static .json files to display certain content and animate them. The code snippet is

     var self = this;
  $.getJSON('data/post_'+ index +'.json', function(d){
    self.postCache[index] = d;
    callback(d)

but I want to modify it to so it could take data from database. I got the data in the same format as it was in static json files and my question is how can I pass that data to this script so that it work as it should.

I am sending request using ajax

$(function () 
  {
    $.ajax({                                      
      url: 'api.php',                   
      data: "<?php echo $data?>",     
      dataType: 'json',                      
      success: function(data)          
      {
        //I really dont know what to write here :(
      } 
    });

  }); 

and the api.php file is getting data from database and I an encoding the data to json using json_encode

$.getJSON just calls $.ajax with some predefined values automatically set for you. This means, since you said the data is the same , that you can do exactly the same as you were doing previously.

  1. Keep a reference to this
  2. Make your async call
  3. in the success function, save your reference and execute your callback

     var self = this; $.ajax({ url: 'api.php', data: "<?php echo $data?>", dataType: 'json', success: function(data) { self.postCache[index] = data; callback(data); } }); 
var self = this;
$.post('api.php',
    {"post_id": index},     
    success: function(d)          
    {
        self.postCache[index] = d;
        callback(d);
    });

see http://api.jquery.com/jquery.post/

In api.php do a SQL query where the post_id = $_POST['post_id'] then echo json_encode($database_row);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM