即使使用“加载”,div也不会重新加载更改的内容。

时间:2016-05-17 23:49:37

标签: javascript php jquery html ajax

我已经有一段时间了。我有一个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" );
    });

如果有人有任何想法,请告诉我,任何帮助表示赞赏!谢谢!

1 个答案:

答案 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的其他示例 - 有时查看非常简单的示例会有所帮助:

AJAX request callback using jQuery