2014-04-09 45 views
0

我在我的网页上有许多PHP包含;我不希望它们活动,直到点击一个按钮或有人点击输入。如何激活特定的PHP包括

然后我想调用具体的DIV ID [php include],而不是所有的页面上。

我有一个输入字段,用户将输入一个邮政编码,然后按下go按钮或输入密钥,然后发生;我希望脚本激活该包含该div ID的php。

例如:我有一个 - DIV ID =“zip60538” - 有一个PHP包括 - [包括myfile.php]

,我不希望在页面加载启动,我只希望DIV ID php包括在go按钮或输入命中后激活。

将会有一个100个div的id与PHP包括所以我想是具体的,只激发匹配的DIV ID PHP包括,而不是所有的人在页面上。每个DIV都设置为zip(然后是实际的邮政编码),因此zip60538是div ID,用户将在输入字段中输入60538。

我当时的想法是:1。 看看输入框 2.如果ZIP +(输入框中输入值)匹配 3.然后激活my.php包括,在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(); 
} 
}); 
}); 

http://jsfiddle.net/7SPGh/35

+0

包括代码请... – webeno

+0

我不认为这是可能的,因为PHP的工作是在页面生成完成的。所以在页面呈现给用户之后,要做任何事情都迟了。 – Halfwarr

+0

这是不可能的。你可以做的是使用JQuery,并在单击按钮时加载div中的页面。 –

回答

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是要走的路。祝你好运!