【问题标题】:Execute PHP on server with AJAX使用 AJAX 在服务器上执行 PHP
【发布时间】:2015-10-10 18:03:16
【问题描述】:

您好,我正在尝试让 ajax 在服务器上执行代码并返回结果:

<script>
    $(document).ready(function(){
        $.post('includes/gallery/gallery.php', function(data){
            $('#galleryTab').html(data);
        });
    });
</script>

class Main{
public static function generateGallery(){
    $path = 'includes/gallery/';
    $results = glob($path . '*' , GLOB_ONLYDIR);
    $dirCount = 0;
    foreach ($results as $result) {
        $resultBaseName = basename($result);
        if ($resultBaseName === '.' or $resultBaseName === '..') continue;
        echo '<h2>'.$resultBaseName.'</h2>';
        if (is_dir($path . '/' . $resultBaseName)) {
            $dir = $path.$resultBaseName.'/';
            $images = glob($dir."*.jpg");
            $imageCount = 0;
            foreach($images as $image) {
                echo '<div class="galleryImage" id="openImage'.$imageCount.$dirCount.'"><img src="'.$image.'" /></div>';
                $imageCount++;
            }
        }
        echo '<br />';
        $dirCount++;
    }
}
}

服务器没有执行PHP,请帮忙

【问题讨论】:

  • 你检查过你的服务器中安装了php吗?尝试使用 phpinfo() 测试文件并将其上传到服务器。
  • 它返回 PHP 版本 5.5.11。我可以直接运行任何php文件,但是用ajax请求它只返回html,它不执行php。
  • 好的,试试用 ajax 测试的简单文件,比如 mail() 来测试它是否有 XMLHttprequest 问题。
  • 尝试在 chrome 或 firefox 中使用开发者控制台中的网络选项卡,查看 ajax 请求发送和返回的内容
  • mail() 也不起作用,它似乎跳过了 标签中的任何内容

标签: php jquery ajax server execute


【解决方案1】:

您在那里定义了您的类及其方法,但您并没有根据您向我们展示的代码调用它。从“main”类调用“generateGallery”方法,它应该可以工作。

【讨论】:

  • 我在原始代码中有它,很抱歉没有将它与代码一起发布,我称之为:“Main::generateGallery();”......我已经包含这在 php 标签之外:

    TEST

    。这显示了,但 php 标签内的所有内容都没有执行.....
【解决方案2】:

您提供的代码还不够。您应该将函数的结果作为数组返回,并使用 json_encode php 函数或任何其他交换格式对其进行编码。请参阅下面的声明。

            $returnResult = json_encode($array);

然后在您的客户端使用 $.ajax({}) jquery 方法。请参阅下面的示例。

 $.ajax({

      url : url , // <-your url here
      method : post or get ,
      data : { field: value }, //provide the values you are passing  <-
      dataType: json or html,  //data interchange format
      success : function(data){

        console.log(data.value);

       }

      });

在此处查看 jquery $.ajax({}) 文档Jquery documentation link

【讨论】:

  • 您好 Jijo,我已成功将数据转换为数组并使用 json 编码,输出看起来正确。不幸的是,控制台没有记录任何内容........
  • 你的回答让我得出结论,我错误地为 generateGallery() 函数分配了 $path ......当我使用上面描述的 json 方法时,它显示在控制台中我想转换为数组的字符串是空的......然后我去看了目录......他们错了............我觉得很愚蠢现在,谢谢你的帮助 Jijo
猜你喜欢
  • 2013-10-29
  • 2017-06-15
  • 2012-02-16
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多