Pergunta

Estou tentando atualizar o campo LastName para PersonID. Eu posso passar pelo PersonID, mas não conheço a sintaxe por também passar o campo de nome lastname.

$('input[name="LastName"]').live('focusout', function() {
    var PersonID = $(this).parents("tr").attr("ID");
    var LastName = $(this).val(); // todo: serialize
    $.ajax({
        url:'Remote/Person.cfc?method=UpdateLastName&returnformat=json'
        ,data:'PersonID='+PersonID
    });
    $(this).parents("td").empty().append(LastName);
});

P: é algo como dados: {'PersonId ='+PersonId, 'LastName ='+LastName}

Estou perdendo uma linha agradável ou parênteses ou vírgula ou ponto ou cólon ou semi-colon ou mais sinal ou ponto de interrogação ou um apóstrofo ou cotação ou sinal de dólar ou algo assim?

Foi útil?

Solução

Você está perto! Mude apenas um pouco, nenhum igual lá dentro e use um cólon como este:

data: {'PersonID':PersonID, 'LastName':LastName}

Você também pode fazer isso se preferir (não é tão seguro se conseguir alguns personagens estranhos)

data: 'PersonID=' + PersonID + '&LastName=' + LastName

Outras dicas

Para estruturas complicadas, caso você adicione mais do que 2 vars:

var obj = new Object;
obj.something1 = 'something';
obj.something2 = Array();
obj.something2[1] = 'foo';
obj.something2[2] = 'bar';

//include json2.js
var objJSON =  JSON.stringify(obj);

$.ajax({
      url: "http://example.com",
      type: "GET",
      data: ({obj: objJSON , method : "UpdateLastName"}),
      contentType: "application/json; charset=utf-8",
      dataType: "html",
      success: function(msg){
         alert("Success: " + msg);
      },
      error: function(msg){
         alert("Error: " + msg);
      }
    });

No lado da CF, apenas faça

<cfset test = deserializeJSON(arguments.obj,true) >
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top