[英]Can't get function call to work in PHP
我在使用$.getJSON
請求獲取JSON數據時遇到麻煩。 在一個PHP文檔中,我有我的功能。 代碼是:
function get_topchart($dbc, $var_ziekenhuis_id, $var_department_id) {
if($var_department_id == "Not Entered") {
$query = "SELECT afdeling, ligduur as ld FROM datavoorbeeld WHERE ziekenhuis='$var_hospital_id' ORDER BY afdeling DESC";
$result = mysqli_query($dbc,$query);
$data = array();
while ( $row = $result->fetch_assoc() ) {
$data[] = $row;
}
echo json_encode( $data );
//return(json_encode( $data ));
} else {
$query = "SELECT afdeling, ligduur as ld FROM datavoorbeeld WHERE ziekenhuis='$var_hospital_id' and afdeling='$var_department_id' ORDER BY afdeling DESC";
$result = mysqli_query($dbc,$query);
$data = array();
while ( $row = $result->fetch_assoc() ) {
$data[] = $row;
}
echo json_encode( $data );
//return(json_encode( $data ));
}
}
我正在使用以下代碼來調用上述在getcharts.php中的函數:
<?php
session_start();
include('../functions/datafunctions.php');
include('../config/db.php');
if(!isset($_SESSION['username'])) {
header('Location: ../login.php');
}
//Determine the function that should be called
$var_function_id = $_GET['funcid'];
//Set variables
$var_ziekenhuis_id = $_GET['hosp'];
$var_department_id = $_GET['dept'];
switch ($var_function_id) {
case "top_chart":
//Call function
get_topchart($dbc, $var_ziekenhuis_id, $var_department_id);
case "bottom_chart":
//New code here
}
?>
我使用的$.getJSON
是:
$.getJSON('functions/getcharts.php', {
"hosp":hospital,
"dept":department,
"funcid":functionid},
當我跳過整個getcharts.php並直接使用switch函數時,事情就起作用了。 該代碼是:
<?php
session_start();
include('../config/db.php');
//Controleer eerst of gebruiker succesvol is ingelogd:
if(!isset($_SESSION['username'])) {
header('Location: ../login.php');
}
//Determine the function that should be called
$var_function_id = $_GET['funcid'];
//Set variables
$var_hospital_id = $_GET['hosp'];
$var_department_id = $_GET['dept'];
switch ($var_function_id) {
case "top_chart":
//function get_topchart($dbc, $var_ziekenhuis_id, $var_department_id) {
if($var_department_id == "Not Entered") {
$query = "SELECT afdeling, ligduur as ld FROM datavoorbeeld WHERE ziekenhuis='$var_hospital_id' ORDER BY afdeling DESC";
$result = mysqli_query($dbc,$query);
$data = array();
while ( $row = $result->fetch_assoc() ) {
$data[] = $row;
}
echo json_encode( $data );
//return(json_encode( $data ));
} else {
$query = "SELECT afdeling, ligduur as ld FROM datavoorbeeld WHERE ziekenhuis='$var_hospital_id' and afdeling='$var_department_id' ORDER BY afdeling DESC";
$result = mysqli_query($dbc,$query);
$data = array();
while ( $row = $result->fetch_assoc() ) {
$data[] = $row;
}
echo json_encode( $data );
//return(json_encode( $data ));
}
//}
}
?>
在這種情況下, $getJSON
代碼為:
$.getJSON('functions/datafunctions.php', {
"hosp":hospital,
"dept":department,
"funcid":functionid},
我究竟做錯了什么?
取消對函數返回語句的注釋:function get_topchart($ dbc,$ var_ziekenhuis_id,$ var_department_id){
if($var_department_id == "Not Entered") {
$query = "SELECT afdeling, ligduur as ld FROM datavoorbeeld WHERE ziekenhuis='$var_hospital_id' ORDER BY afdeling DESC";
$result = mysqli_query($dbc,$query);
$data = array();
while ( $row = $result->fetch_assoc() ) {
$data[] = $row;
}
return(json_encode( $data ));
} else {
$query = "SELECT afdeling, ligduur as ld FROM datavoorbeeld WHERE ziekenhuis='$var_hospital_id' and afdeling='$var_department_id' ORDER BY afdeling DESC";
$result = mysqli_query($dbc,$query);
$data = array();
while ( $row = $result->fetch_assoc() ) {
$data[] = $row;
}
return(json_encode( $data ));
}
}
並在調用變量時影響函數對變量的return語句。
變更:
get_topchart($dbc, $var_ziekenhuis_id, $var_department_id);
與
$topchart = get_topchart($dbc, $var_ziekenhuis_id, $var_department_id);
更換
echo json_encode( $data );
與
return json_encode( $data );
更換
switch ($var_function_id) {
case "top_chart":
//Call function
get_topchart($dbc, $var_ziekenhuis_id, $var_department_id);
case "bottom_chart":
//New code here
}
與:
switch ($var_function_id) {
case "top_chart":
//Call function
echo get_topchart($dbc, $var_ziekenhuis_id, $var_department_id);
case "bottom_chart":
//New code here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.