我需要在我的项目中从外部文件加载一些html,就像你在下面的代码中看到这个我的php代码
if(strtolower($_SERVER["request_method"]) == "get") {
$html = "";
$path = $_GET["path"];
if($path == "cities-select-options") {
$country_code = htmlspecialchars($_GET["country_code"]);
$get_cities = get_cities($country_code);
$html .= ' <option value=""> --- </option> ';
foreach($get_cities as $city):
$html .= ' <option value="">'.$city["city_name"].'</option> ';
endforeach;
echo $html;
}elseif() {
/* */
}
}
这是我的js代码
$( "#ad_country" ).on("change",function() {
$country_id = $(this).val();
$.get("htmlLoader.php?path=cities-select-option&country_id="+$country_id,function(html) {
$("#ad_city").html(html);
});
});
但我对此方法感到困惑。因为我有太多的部分需要通过ajax加载。所以我的问题是:有条件可以做到这一点而无需编写许多条件吗?
答案 0 :(得分:1)
您可以将每个路径的代码放在不同的函数中,并使用关联数组来调用它们。
$paths = array(
'cities-select-option' => 'get_cities_options',
'states-select-option' => 'get_states_options',
...
);
function get_cities_options() {
$html = ' <option value=""> --- </option> ';
$country_code = $_GET["country_code"];
$get_cities = get_cities($country_code);
foreach($get_cities as $city):
$html .= ' <option value="">'.$city["city_name"].'</option> ';
endforeach;
return $html;
}
function get_states_options() {
...
}
if (strtolower($_SERVER['REQUEST_METHOD'] == 'get') {
$path = $_GET['path'];
if (isset($paths[$path])) {
echo $paths[$path]();
}
}