我使用Mysql
使用PHP
从Ajax/JSON
运行javascript变量。我的原始问题可以在这里找到:from mysql to javascript variable。基本上我现在遇到的问题是在脚本的其余部分中识别变量。在我的上一个问题中,您会看到两个变量来自:
var tag_name = 'example';
var client_id = '123456789';
现在使用(谢谢@Richard Rodriguez):
$.ajax({
url: 'call.php',
dataType: 'json'
}).done(
function(data){
var tag_name = data[0];
var client_id = data[1];
}
);
我认为问题可能只是javascript function conflict
?这是我试图从github修改的脚本的链接:https://raw.github.com/ryancw/instagram-scroll/master/instagram-scroll.js。我希望看到原始文件可以帮助诊断导致问题的原因?我研究了最后2个小时没有运气。关于javascript函数冲突的好文章的任何建议甚至链接(如果这是问题)将是一个很大的帮助。
编辑(完整代码):
var tag_name = null;
var client_id = null;
var thumb_dimension = null;
var div_to_add_pics = null;
var include_caption = null;
var include_username = null;
var url = null;
function processData() {
console.log(tag_name);
console.log(thumb_dimension);
console.log(div_to_add_pics);
console.log(include_caption);
console.log(include_username);
console.log(url);
}
$.ajax({
url: 'call.php',
dataType: 'json'
}).done(
function(data){
tag_name = data[0];
client_id = data[1];
thumb_dimension = 220;
div_to_add_pics = '#img';
include_caption = false;
include_username = false;
url = 'https://api.instagram.com/v1/tags/'+tag_name+'/media/recent?client_id='+client_id;
processData();
}
);
答案 0 :(得分:0)
你的问题是范围而不是功能冲突。声明变量的方式只在本地范围内可见,您需要在那里使用它们,或者将它们传递给另一个可以使用它们的函数,或者(在污染全局范围时)将它们全局声明并删除var关键字在.done回调中
在本地使用
$.ajax({
url: 'call.php',
dataType: 'json'
}).done(
function(data){
var tag_name = data[0];
var client_id = data[1];
var clienttag = client_id+tag_name;
//blah blah blah
}
);
将其传递给其他函数
function processData(tag_name,client_id) {
console.log(tag_name);
console.log(client_id);
}
$.ajax({
url: 'call.php',
dataType: 'json'
}).done(
function(data){
var tag_name = data[0];
var client_id = data[1];
processData(tag_name,client_id);
}
);
全局声明(这是污染全球空间时最不理想的)
var tag_name = null;
var client_id = null;
function processData() {
console.log(tag_name);
console.log(client_id);
}
$.ajax({
url: 'call.php',
dataType: 'json'
}).done(
function(data){
tag_name = data[0];
client_id = data[1];
processData();
}
);