2011-08-23 62 views
1

所以,大家好我有一个很大的问题,现在用的是由根据发送到该页面在这种情况下,它是一个按钮变量按钮时onclick事件在单击时会访问一个数据库并提取数据库中的所有内容并将其放入Excel格式。现在的问题是当按钮被制作时,它总是执行数据库搜索和文件制作。我知道它必须做到这一点,因为现在按钮的制作方式,有没有改变这个?动态按钮总是执行制作

if ($action_db) echo "<button class=\"btn\" onClick='".getUDB()."'>" . DBUser . "</button>"; 

这样:

if ($action_db) echo "<button class=\"btn\" onClick=\"getUDB()\">" . DBUser . "</button>"; 

和发送事件槽Java的脚本,所以它执行getUDB()方法,在我的PHP文件?

谢谢。

行,所以我去和使用的建议,即萨姆说的一部分,并把它放在一个jQuery和变化是这样的

if ($action_db) echo "<button class=\"btn\" id=\"UDB\">" . DBUser . "</button>"; 

JQuery的:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#UDB").click(function(){ 
      <?getUDB();?> 
     }); 
    }); 

OK所以问题是当我选择客户端菜单或菜单的任何其他部分来访问网页的那部分时,它会自动执行getUDB方法,并且不会让我访问其他任何内容。有什么建议么???

+0

邮政getUDB()函数的内容。 –

回答

1

如果你不想PHP函数getUDB()时加载页面被称为做,那么你是对的 - 要移动这一点为的Javascript功能。

这样做echo "foo" . getUDB() . "bar",我假设你的网页加载速度慢。为了解决这个问题,你可以使用AJAX调用Javascript。所以你可能想要:

  1. 创建一个单独的PHP文件,调用getUDB()
  2. 创建您的原始网页上的JavaScript函数发出GET请求到这个新的,单独的PHP文件。使用jQuery来做到这一点最简单,这使得AJAX请求变得简单易懂 - check out this page
  3. 编写正确处理来自该页面的响应所需的Javascript。

SitePoint有一个good tutorial on jQuery and AJAX,检查出来。

1

您需要向服务器发送请求时启动任何服务器端的响应事件,或者由传统的后背部或通过AJAX。

我建议你做你的按钮到表单中,代替用户的ID为隐藏输入的值:

if ($action_db) { 
    ?> 
    <form action="/getUDB"> 
     <input type="hidden" name="DBUser" value="<?= DBUser ?>" /> 
     <button class=\"btn\" type="submit"><?= DBUser ?></button> 
    </form> 
    <? 
} 

然后设置第二个脚本来处理POST请求/getUDB