jquery - 将变量从 JavaScript 页面传递到 PHP 页面
问题描述
我有 JavaScript 代码,是从有关阅读更多主题的在线教程中复制的,我一直在使用它,但不了解某些代码的作用。现在我想将该脚本中的变量 ID 传递给另一个名为 main.php 的 PHP 页面。我该怎么做?
JavaScript:
(function($) {
var id = "<?php echo variable; ?>"; //this line is where i want to set the variable and pass it to the main.php
$.fn.loaddata = function(options) {
// Settings
var settings = $.extend(
{
loading_gif_url: "ajax-loader.gif", //url to loading gif
end_record_text: "End of Feed", //no more records to load
data_url: "main.php", //url to PHP page
start_page: 1, //initial page
},
options,
);
var el = this;
loading = false;
end_record = false;
contents(el, settings); //initial data load
$(window).scroll(function() {
//detact scroll
if ($(window).scrollTop() + $(window).height() >= $("#cont2").height()) {
//scrolled to bottom of the page
contents(el, settings); //load content chunk
}
});
};
//Ajax load function
function contents(el, settings) {
var load_img = $("<img/>")
.attr("src", settings.loading_gif_url)
.addClass("loading-image"); //create load image
var record_end_txt = $("<div/>")
.text(settings.end_record_text)
.addClass("end-record-info"); //end record text
if (loading == false && end_record == false) {
loading = true; //set loading flag on
el.append(load_img); //append loading image
$.post(settings.data_url, { page: settings.start_page }, function(data) {
//jQuery Ajax post
if (data.trim().length == 0) {
//no more records
el.append(record_end_txt); //show end record text
load_img.remove(); //remove loading img
end_record = true; //set end record flag on
return; //exit
}
loading = false; //set loading flag off
load_img.remove(); //remove loading img
el.append(data); //append content
settings.start_page++; //page increment
});
}
}
})(jQuery);
$("#results").loaddata();
解决方案
使用下面的代码,您可以在 main.php 文件中将 id 读取为 $_POST['id'] 。我已将“data_id”添加到“settings”var,然后在 $.post 中,我传递了一个附加参数,如“id: settings.data_id” 请检查以下代码:
(function($) {
var id = "<?php echo $variable; ?>";
$.fn.loaddata = function(options) {// Settings
var settings = $.extend(
{
loading_gif_url: "ajax-loader.gif", //url to loading gif
end_record_text: "End of Feed", //no more records to load
data_url: "main.php", //url to PHP page
start_page: 1, //initial page
data_id: id
},
options,
);
var el = this;
loading = false;
end_record = false;
contents(el, settings); //initial data load
$(window).scroll(function() {
//detact scroll
if ($(window).scrollTop() + $(window).height() >= $("#cont2").height()) {
//scrolled to bottom of the page
contents(el, settings); //load content chunk
}
});
};
//Ajax load function
function contents(el, settings) {
var load_img = $("<img/>")
.attr("src", settings.loading_gif_url)
.addClass("loading-image"); //create load image
var record_end_txt = $("<div/>")
.text(settings.end_record_text)
.addClass("end-record-info"); //end record text
if (loading == false && end_record == false) {
loading = true; //set loading flag on
el.append(load_img); //append loading image
$.post(settings.data_url, { page: settings.start_page,id: settings.data_id}, function(data) {
//jQuery Ajax post
if (data.trim().length == 0) {
//no more records
el.append(record_end_txt); //show end record text
load_img.remove(); //remove loading img
end_record = true; //set end record flag on
return; //exit
}
loading = false; //set loading flag off
load_img.remove(); //remove loading img
el.append(data); //append content
settings.start_page++; //page increment
});
}
}
})(jQuery);
$("#results").loaddata();
推荐阅读
- azure-devops - ADO Build Pipeline 中是否有办法只构建其中一个工件?
- python - 用_(下划线)替换.txt文件\n(新行)的函数?
- html - 如何获得连续的 nowrap 跨度以包装为单独的元素?
- s4sdk - 如何为 SCP 应用程序配置应用程序日志服务
- haskell - Haskell 尝试在不应该解决类型变量的情况下解决它
- ios - 在 swift 中点击从 webview 获取按钮的 id
- mongodb - Mongodb获取日期之间的文档(以“20-05-2019”格式存储为字符串)
- python - 操作错误,django中没有这样的表错误
- javascript - Sinon spy callCount 返回 0
- python-3.x - 列表拆分等拆分