<img/>没有使用jQuery刷新

时间:2013-06-25 01:47:54

标签: php jquery xhtml

我正在使用Debian 7.0.0上的xhtml,LAMP和jQuery 2.0.2进行开发。

我正在使用以下php生成的元素

echo "<img id=\"displayImageID\" src=\"" . $DisplayFileName . "\" alt=\"Background\" style=\"margin:10px 0px 10px 5px\"/>";

我希望在单击单选按钮时将其更改为不同颜色的查找表。为此,我使用以下代码

    jQuery.ajax({
    type: "POST",
    url: "DisplayParameters.php",
    data: { LUT:lut }
    }).done(function( result ) {
    $("#msg").html( " Ajax called" );
    });        

使用DisplayParameters.php中的以下代码

    $LUT=$_POST['LUT'];
    $Executable="Executables/changeLUT";
    $DisplayImageName="images/display.png";
    $Str=$Executable . " -t " . $LUT" . " -o " . $DisplayImageName;

    $output=exec($Str, $dummy, $returnValue);

    echo "<script language=\"JavaScript\">";
    echo "d = new Date();";
    echo "jQuery('#displayImageID').attr('src', '" . $DisplayImageName . "?'+d.getTime());";
    echo "</script>";
}

更新图像并将其重新加载到图像元素中,但在我使用Firefox“重新加载当前页面”刷新整个页面之前没有任何反应。

我原本以为,由于Ajax的异步特性,图像在被具有相同名称但颜色不同的新图像替换之前被加载。但是,如果是这种情况,如果在保存到磁盘的映像发生更改后继续单击单选按钮,我希望最终加载新的LUT映像。不是这种情况。在我重新加载页面之前,我没有得到新的图像。

1 个答案:

答案 0 :(得分:1)

试试这个:

JS

jQuery.ajax({
       type: "POST",
       url: "DisplayParameters.php",
       data: { LUT:lut },
       cache: false                               //CHANGED
}).done(function( result ) {
       $("#msg").html( " Ajax called... and returned " + result );
       //('#displayImageID').attr('src', result);   
       ('#displayImageID').attr('src', result+'?'+$.now());   //CHANGED
});    

PHP

$LUT=$_POST['LUT'];
$Executable="Executables/changeLUT";
$DisplayImageName="images/display.png";
$Str=$Executable . " -t " . $LUT" . " -o " . $DisplayImageName;

$output=exec($Str, $dummy, $returnValue);

echo $DisplayImageName;                         //CHANGED