0

画像をアップロードできるサイトがあり、選択した画像を表示するプレビュー システムを使用しています。問題は、画像がプレビュー div に読み込まれることがありますが、それ以外の場合は同じままです。ただし、更新ボタンを押すと、実際には画像が変更されます。したがって、コントローラー アクションは確実に呼び出されますが、常にプレビュー イメージを更新するとは限りません。これは私のコードです:

<img name="liga_r2_c3" src="/../images/ligasDeAmigos/prizes/<?php print $model->prize_photo?>" width="100" height="100" border="0" id="liga_r2_c3" alt=""/>

new AjaxUpload('liga_r2_c3', {
            action: 'uploadImage',
            data: {
                liga_id : liga,
                isPrize : 'true',
            },
            onComplete: function(file, response) {
                  var liga = $("#hidden_prize_picture").val();
                  var ruta = "/../images/ligasDeAmigos/prizes/"+liga+ '?rid=' + Math.random(); 
                  $('#liga_r2_c3').attr('src',ruta);
            }
        }); 
4

1 に答える 1

2

Math.random() の予測可能性を考慮して、ランダムな値が重複していないことを確信していますか? Date.getTime は、更新の間に一意の識別子を提供する必要があるため、ここでははるかに優れたソリューションになります。

<img name="liga_r2_c3" src="/../images/ligasDeAmigos/prizes/<?php print $model->prize_photo?>" width="100" height="100" border="0" id="liga_r2_c3" alt=""/>

new AjaxUpload('liga_r2_c3', {
            action: 'uploadImage',
            data: {
                liga_id : liga,
                isPrize : 'true',
            },
            onComplete: function(file, response) {
                  var liga = $("#hidden_prize_picture").val();
                  var d = new Date();
                  var ruta = "/../images/ligasDeAmigos/prizes/"+liga+ '?rid=' + d.getTime(); 
                  $('#liga_r2_c3').attr('src',ruta);
            }
        }); 
于 2011-08-01T16:35:45.160 に答える