2016-04-12 1 views
0

J'utilise https://vitalets.github.io/x-editable/docs.html comme élément de sélection. En plus d'envoyer la nouvelle valeur au serveur (c'est-à-dire s, p), je voudrais également envoyer la valeur précédente (c'est-à-dire b). Le script suivant le fera initialement, mais n'enverra que la valeur d'origine (c'est-à-dire p) même s'il est changé plusieurs fois et que la nouvelle valeur précédente n'est plus p.Envoie la valeur xeditable précédente au serveur

<a href="javascript:void(0)" class="doc-type" data-value="b"></a> 

$('.doc-type').editable({ 
    type: 'select', 
    placement: 'right', 
    title: 'Document Type', 
    source: [{value:'b',text:'Buy'},{value:'s',text:'Sell'},{value:'p',text:'Project'}], 
    //params: {task:'saveDocType',controller:'portal',cid:ayb.component.id,CSRF:ayb.CSRF,doc_id:function(){console.log(this);}}, 
    params: function(params) { 
     //originally params contain pk, name and value 
     delete(params.name); 
     params.task = 'saveDocType'; 
     params.controller = 'portal'; 
     params.cid = ayb.component.id; 
     params.CSRF = ayb.CSRF; 
     params.doc_id=$(this).parent().parent().data('id'); 
     params.v_old=$(this).data('value'); 
     return params; 
    }, 
    url: 'index.php', 
    pk: function(){return $('#id').val();}, 
    error: function (response, newValue) { 
     //Unlike other validation, save function to return non 200 header. 
     return response.responseText; 
    }, 
}); 

Répondre

0

Je pense il y a une meilleure façon, mais une option est d'enregistrer le nouvelleValeur dans le rappel de succès.

$('.doc-type').editable({ 
    type: 'select', 
    source: [{value:'b',text:'Buy'},{value:'s',text:'Sell'},{value:'p',text:'Project'}], 
    params: function(params) { 
     //originally params contain pk, name and value 
     params.v_old=$(this).data('value'); 
     return params; 
    }, 
    url: 'index.php', 
    pk: function(){return $('#id').val();}, 
    success: function(response, newValue) { 
     $(this).data('value',newValue) 
    } 
});