选择第 1 页上的项目 2 将返回第 2 页上的项目 1
Selecting item2 on page 1 returns item1 on page2
我正在从数据库动态创建行和表以显示只读项目列表。单击其中一个项目时,页面应重新加载到其他窗口,并显示与单击的项目相关的相关结果。
我有 99% 的工作,但是当我单击第一行时(假设"item1",下一个窗口反映未定义。当我单击第二行("item2")时,窗口反映了item1的结果。当我单击第三行("item3")时,窗口反映了item2的结果。
我最了解的是我可能没有正确存储变量。
我最接近的猜测是这可能是queryString的解决方案,但是我不确定如何或在哪里实现它。
我已经提供了所有相关代码注释,以便其他可能有此问题的人。
var customApp = function(){
// Establish Variables
var salonName
var salonDomainLink
var salonAddress
var salonPhoneNumber
var salonSelection
// Queries Salons class
var query1 = new Parse.Query("Salons");
query1.find({
success: function(results) {
// Changes search results from JSON Object to ?something readable?
var searchResults = JSON.parse(JSON.stringify(results))
// Loops through every result and creates variables with each specific result
for ( var i in searchResults) {
salonName = searchResults[i].name;
salonDomainLink = searchResults[i].domainLink;
// Creates a new row for each item in table
var newrow = $('<tr>').text('').appendTo('#searchTable');
// Adds a cell for each salonName in row
var nameCell = $('<td>').text(salonName).appendTo(newrow);
// Adds an id of the salon name + 'Id' to each row
var cellId = nameCell.attr("id", salonName.replace(/'s+/g, '') + "Id")
// Changes class of each cell
nameCell.addClass("text-left font-w600 text-primary");
}
// Passes clicked salon name to a variable for use on another page
$('#searchTable tr td').click(function(){
// Acquires text value of the specific td of tr
salonSelection = $(this)[0].childNodes[0].nodeValue
// Saves the variable to local storage (can be retrieved with "localStorage.salonSelection")
delete localStorage.salonSelection;
window.localStorage.salonSelection = salonSelection;
window.location = 'base_pages_schedule_1.html';
});
},
error: function(error) {
alert("Error: " + error.code + " " + error.message + ". Please contact Support.");
}
});
query1.equalTo("name", localStorage.salonSelection);
query1.find({
success: function(results) {
var searchResults = JSON.parse(JSON.stringify(results))
// Loops through every result and creates variables with each specific result
for ( var i in searchResults) {
window.localStorage.salonName = searchResults[i].name;
window.localStorage.salonDomainLink = searchResults[i].domainLink;
window.localStorage.salonAddress = searchResults[i].address;
window.localStorage.salonPhoneNumber = searchResults[i].phoneNumber;
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message + ". Please contact Support.");
}
});
$('#salon-name').text(localStorage.salonName);
$('#salon-address').text(localStorage.salonAddress);
$('#salon-phone-number').text(localStorage.salonPhoneNumber):};
query.find()
是异步的,因此在 DOM 中设置text()
之前它不会设置新值
将 dom 更新移动到find()
成功回调中
query1.find({
success: function(results) {
var searchResults = JSON.parse(JSON.stringify(results))
// process results
// then update dom
$('#salon-name').text(localStorage.salonName);
},
error: function(error) {
alert("Error: " + error.code + " " + error.message + ". Please contact Support.");
}
});
另请注意,for
循环会在循环的每次迭代中向存储密钥重写一个新值,以便仅存储最后一个值。不确定您的存储目标是什么
相关文章:
- 从mysql数据库中删除项目,然后返回最后一页
- 谷歌地图API'.pac项目:first'返回格式不正确
- 如何使复选框项目返回超链接
- vars返回的警报“;长度“;或“;项目”;
- $scope.item don't在第页中向ng重复返回项目
- 为什么 javascript matches() 返回多个项目
- 在 cordova 项目中,我正在使用文件传输插件上传个人资料照片,它总是返回代码 1 错误
- 尽管在正则表达式中使用了全局修饰符,但只有一个项目返回
- $.getJSON 返回了选定的项目
- Javascript 比较两个大小不同的数组,并返回不在第二个数组中的项目
- 下划线.js在对象数组中查找唯一值;返回唯一项目及其计数
- switch 语句以仅在项目类型更改时返回结果
- 仅在选择器中可见的项目始终返回 -1
- 为什么 _.difference 返回所有项目
- 将项目返回到数组中
- 选择第 1 页上的项目 2 将返回第 2 页上的项目 1
- 如何通过限制和降序创建At获取返回的项目索引
- 在 ajax call-JavaScript 中返回的 100 个项目的限制
- 如何单击图像网格中的项目并在不同的容器 - Javascript 中返回所选图像
- Cordova&SQLite-所有行项目返回为'未定义'