New*_*der 13 javascript php function-call
我有
index.php
<select id="year_list" name="year_list" onchange="check_year_event('year_list', 'event_list');" > . . . </select>
<select id="event_list" name="event_list" onchange="check_year_event('year_list', 'event_list');" > . . . </select>
.
.
.
<?php
function checkYearandEvent($year, $event) {
$year_event = mysql_query("SELECT * FROM year_event WHERE year = '$event' AND event = '$event'")
if (mysql_num_rows($year_event) > 0) {
// do this
}
}
?>
Run Code Online (Sandbox Code Playgroud)
myscripts.js
function check_year_event(year_id, event_id) {
var year = document.getElementById(year_id).value;
var event = document.getElementById(event_id).value;
// call PHP function (but I don't know how): checkYearandEvent(year, event);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是每次用户更改任何select元素的值时如何调用PHP函数.
你需要使用ajax.有一个基本的例子:
myscripts.js
function AjaxCaller(){
var xmlhttp=false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}
if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function callPage(url, div){
ajax=AjaxCaller();
ajax.open("GET", url, true);
ajax.onreadystatechange=function(){
if(ajax.readyState==4){
if(ajax.status==200){
div.innerHTML = ajax.responseText;
}
}
}
ajax.send(null);
}
function check_year_event(year_id, event_id) {
var year = document.getElementById(year_id).value;
var event = document.getElementById(event_id).value;
callPage('file.php?year='+year+'&'+'event=+'+event,document.getElementById(targetId));
}
Run Code Online (Sandbox Code Playgroud)
file.php
<?php
function checkYearandEvent($year, $event) {
$year_event = mysql_query("SELECT * FROM year_event WHERE year = '$event' AND event = '$event'")
if (mysql_num_rows($year_event) > 0) {
// do this
}
}
echo checkYearandEvent($_GET['year'], $_GET['event']);
?>
Run Code Online (Sandbox Code Playgroud)
您将无法以您可能的方式执行此操作.在浏览器收到HTML之前,PHP在服务器上执行.另一方面,JavaScript在浏览器中运行,并且不了解用于创建HTML的PHP(或任何其他服务器端语言).
要"调用"php函数,您必须向服务器发出请求(通常称为AJAX).例如,您可以使用一个checkYear.php脚本来检查事件并返回一些指示检查是否成功的HTML.当HTML片段返回到JavaScript时,您将其注入页面.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
56578 次 |
| 最近记录: |