如何在“onchange”事件触发时调用PHP函数?
问题描述:
我是新来的PHP,所以请裸露在我身边。如何在“onchange”事件触发时调用PHP函数?
基本上,我得到的是三个相同的下拉列表,我使用MySQL数据填充。 如果其中一个更改索引(onchange被触发),我希望其他两个重新填充,以便它们排除使用另一个下拉列表选择的项目。我想在后面的代码中调用一个函数(通过选择的项目的值)来重新填充另外两个。
我一直在寻找一段时间,我只是无法用PHP完成它。 PHP允许从这个事件中调用函数吗?我也尝试使用AJAX,但没有。
任何示例代码将不胜感激。
答
你不能(直接)从客户端调用服务器端函数。
您可以向运行调用该函数的服务器端脚本的URL发出HTTP请求。
ASP.NET有(我相信,我从来没有使用它)一些东西,将设置一个URL并生成一些JavaScript,将为您调用该URL。
PHP核心没有这样做。
一个非常粗糙的,快速和肮脏的轮廓(即不尝试是基于REST)的你怎么可能去这样做类似的东西将是:
callFunction.php:
<?php
include("myFunctions.php");
if ($_GET['call'] == "functionA") {
functionA();
}
?>
那么你的JS将使一个Ajax请求callFunction.php?call=functionA
。
答
虽然不需要明确写入,但ASP.NET在更改下拉列表时将执行回发。
如果你想在PHP中往返服务器,你必须实现相同的逻辑(例如在onchange
事件中用JavaScript发布表单)。
这对于使用AJAX也是一个很好的情况,但是您还没有提供任何有关您尝试过或出错的细节,因此很难进一步提供帮助。
答
OnChange()是一个js函数,为了使用它来调用php函数,你必须使用AJAX。使用ajax,你将能够获得php的代码返回值,将其显示在页面中,或者进行任何你想要的操作。
祝你好运
你的代码是什么? – 2012-08-09 11:09:50
AJAX应该做的工作,不断尝试 – 2012-08-09 11:12:04
'onChange'是一个JavaScript函数 - 调用另一个JavaScript函数。这与PHP有什么关系?就像PHP所担心的那样,在用户机器上可见的时候,所有事情都会被完成并被粉碎。 – Fluffeh 2012-08-09 11:12:22