我已经有一段时间了。我有一个php文件,它有一个读取目录的div,并将目录中的文件加载到下拉列表中。当用户从文件中选择文件被选中并执行操作时。但是,在刷新页面之前,文件名不会从下拉列表中消失。我曾经尝试过#load; load'它不起作用。如同,div的内容不会更新。
我的代码如下: 这是PHP文件:
<div id="mgA" class="form-group">
<label>Management Address:</label>
<?php
$path = "/licenses/ve/address/unused";
clearstatcache();
$files = array();
$handle = opendir($path);
echo '<select required id="mgmtAdd" class="form-control select2" style="width: 100%;">';
while ($file = readdir($handle)) {
if (substr($file,0,1) != ".") {
$files[]=$file;
}
echo "<option selected = 'selected' value='0'>Select</option>";
natsort($files); //sorting
foreach($files as $file){
echo "<option value ='$file'>$file</option>";
}
echo '</select>';
if (is_dir_empty($path)) {
echo "Max no of hosts already created";
}
function is_dir_empty($path) {
if (!is_readable($path)) return NULL;
return (count(scandir($path)) == 2);
}
closedir($handle);?>
这是单击div时应重新加载所有内容的按钮:
$( "#vServer").on( "click", function(e) {
e.preventDefault();
$("#mgA").load(virtualDialog);
alert("refreshed");
virtualDialog.dialog( "open" );
});
如果有人有任何想法,请告诉我,任何帮助表示赞赏!谢谢!
答案 0 :(得分:1)
正如epascarillo指出的那样,您错误地使用了load()
。这可能更符合你想要做的事情但我没有测试(甚至非常仔细地检查)你的PHP代码。
我还假设div #mgA
是您使用virtualDialog打开的jQueryUI对话框的内容。
<强>的javascript / jQuery的:强>
$( "#vServer").on( "click", function(e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'ajax-reload.php',
success: function(d){
$("#mgA").html(d);
virtualDialog.dialog( "open" );
}
});
});
<强> Ajax的reload.php 强>
<?php
$path = "/licenses/ve/address/unused";
clearstatcache();
$files = array();
$handle = opendir($path);
$out = '<select required id="mgmtAdd" class="form-control select2" style="width: 100%;">';
while ($file = readdir($handle)) {
if (substr($file,0,1) != ".") {
$files[]=$file;
}
$out .= "<option selected = 'selected' value='0'>Select</option>";
natsort($files); //sorting
foreach($files as $file){
echo "<option value ='$file'>$file</option>";
}
} //<=== this brace was missing
$out .= '</select>';
if (is_dir_empty($path)) {
$out = "Max no of hosts already created";
}
function is_dir_empty($path) {
if (!is_readable($path)) return NULL;
return (count(scandir($path)) == 2);
}
closedir($handle);
echo $out;
?>
请参阅这些简单AJAX的其他示例 - 有时查看非常简单的示例会有所帮助: