我的网页上有很多PHP包含;在单击按钮或有人点击进入之前,我不希望它们处于活动状态。
然后我想在页面上调用特定的DIV ID [php include]而不是所有这些ID。
我有一个输入字段,用户可以输入邮政编码,然后点击go按钮或输入密钥,之后会发生;我希望脚本能够激活php包含该div ID。
例如:我有一个 - div id =" zip60538" - 有一个php include - [include myfile.php]
我不希望在页面加载时激活,我只想在转到按钮或输入后激活DIV ID php include。
将包含100个带有PHP包含的div ID,因此我希望具体,并且只在页面上触发匹配的DIV ID PHP Include而不是所有这些。每个DIV都设置为zip(然后是实际的邮政编码),因此zip60538是div ID,用户将在输入字段中输入60538。
我在想的是: 1.看看输入框 2.如果zip +(输入框值)匹配 3.然后激活my.php include,在div id zip60538
可能吗?
$(document).ready(function(){
var zipCodes =[60538,60504,75001,76008,75002,75013,76009,76225,75409,76226,76001,76002,76006,76010,
76011,76012,76013,76014,76015,76016,76017,76018,76227,76020,75413,75180,75101,76021,
76022,75414,76126,75424,75418,76023,76028,75135,75006,75007,75010,76127,75104,75423,
75009,75105,76031,75211,76034,76233,75121,75019,75114,76035,76036,];
$("#buttontest").click(function(){
var zipIndex = zipCodes.indexOf(parseInt($("#full_day").val()));
$("#zipMessage > div").hide("fast");
var zipId = zipIndex > -1 ? zipCodes[zipIndex] : "Error";
$("#zip"+zipId).show("fast");
});
$("#full_day").keydown(function(e){
if(e.which === 13){
$("#buttontest").click();
}
});
});
答案 0 :(得分:1)
PHP在服务器上运行,当浏览器加载您的网页时,PHP“已经完成了它的事情”并且无法再与浏览器保持开放的对话。
话虽这么说,你最好的选择是使用AJAX。为了使事情尽可能简单,我建议使用jQuery's .ajax() method。
这样,一旦用户执行操作,您就可以使用JavaScript处理该事件,从服务器上的PHP调用某些内容,然后将其返回到浏览器以供使用(实际上是在浏览器和浏览器之间创建一个开放式对话)服务器)。
示例如下:
$("#some_button").on('click', function(e) {
$.ajax({
type: 'POST',
url: 'some_php_script.php',
data: {foo : "bar"}
})
.done(function(results) {
// check to see if results is actually html
// going to assume it is for the sake of example
$("#zip60538").html(results);
});
});
你提到你有hundreds of separate includes
,所以创建一个带参数和抽象这个功能的基本函数最适合你的特定情况。 AJAX是要走的路。祝你好运!