2011-08-29 46 views
1

我有這種相同的緩存問題,並且無法使用上述解決方案修復它。我正在使用Symfony 1.4,JQuery和JEditable。Symfony JEditable使用url_for()檢索緩存的結果

請看看這個代碼:

$('#example tbody td').click(function() { 

    /* Get the position of the current data from the node */ 
    var aPos = oTable.fnGetPosition(this); 

    /* Get the data array for this row */ 
    var aData = oTable.fnGetData(aPos[0]); 
    var d = new Date(); 
    var data_id = aData[0]*d.getMilliseconds(); 

    //oCache.lastJson.aData[aPos[0][aPos[1]] = sValue; 
    //oTable.fnUpdate(sValue, aPos[0], aPos[1]); 

    //alert("aData:"+data_id); 
    $('td.cSelect').editable(
     '<?php echo url_for('mymodule/get_data?rid=') ?>'+data_id, 
     { 
       data  : '<?php print json_encode($array); ?>', 
       id  : data_id,   
       type  : 'select', 
       submit : 'OK' 
     } 
    ); 
    /* Update the data array and return the value */ 
    aData[ aPos[1] ] = 'clicked'; 
    this.innerHTML = 'Select'; 
}); 

請幫幫我!

+0

是什麼問題? –

+0

問題是: <?PHP的回聲url_for( 'MyModule的/ GET_DATA RID =?')?>'+ data_id data_id被從高速緩存中發送的所有的時候,它應該發送不同的值每次點擊事件被稱爲 – Edge

+0

我找到了解決方案,它不是JQuery或Jeditable,但是在Symfony上,卻愚蠢地使用硬編碼的值。 – Edge

回答

0

要更改發佈數據的URL,首先需要銷燬可編輯元素。所以,如果你在撥打.editable()之前就這樣做了,它應該按預期工作。

$('td.cSelect').editable('destroy'); 
$('td.cSelect').editable(
    '<?php echo url_for('mymodule/get_data?rid=') ?>'+data_id, 
    { 
      data  : '<?php print json_encode($array); ?>', 
      id  : data_id,   
      type  : 'select', 
      submit : 'OK' 
    } 
); 
+0

使用'destroy'會導致JEditable停止工作。但是,謝謝,我找到了解決方案,它在Symfony上! – Edge

+0

這就是爲什麼在你銷燬它之後重新啓動它......無論如何,如果你找到你的解決方案,你可能想在這裏發佈它,所以其他與你有相同問題的人可以從中受益。 –