last day (15 days later) » 

8:29 PM
0
Q: Como pegar um valor da propriedade Select e dar Post com javaScript

Jalber RomanoPreciso dar um post e enviar para minha action Create, o tipo de Natureza que foi selecionado, pois precisarei fazer uma validação extra. Não estou conseguindo dar o post pois não sei se estou pegando o data-id corretamente, ou se está faltando algo no meu script JS... Alguém sabe como me ajudar?...

 
dvd
Está selecionando errado. Use $(this).find("option:selected").data("id");
 
Ele está caindo na msg de erro.. Será que tem algum problema com a rota?
 
dvd
Tá caindo aqui: alert("Erro na tentativa de emissão!");?
 
Sim, exatamente!
 
dvd
Me parece algum erro na url
Não tá achando o destino na url
 
8:29 PM
Na rota está configurado [Route("pessoa-gerenciamento/cadastrar-novo/{id:int}")]
 
dvd
Onde tem "data: PessoaNaturezaId," no Ajax, vc está enviando apenas o "id" do option selecionado sem um identificador... é isso mesmo?
 
dvd
geralmente se usa "data: {alguma_variavel: valor},"
 
Mas ela, em tese, não estaria armazenando umnúmero?
 
dvd
bom, eu não conheço essa sistema que vc tah usando, mas no destino deveria pegar o "alguma_variavel" que leva o "valor"
 
8:35 PM
É que eu preciso pegar o valor que está selecionado no componente select
Podem ser duas opções:
 
dvd
tá armazenando a "id", mas ela tah indo sem um parâmetro que a identifique
 
1 ou 2
 
dvd
tente assim: data: {PessoaNaturezaId: PessoaNaturezaId},
 
E peciso dar um post enviando esse número
 
dvd
e faça tb a correção que falei no comentário: $(this).find("option:selected").data("id");
 
8:36 PM
Momento
Tentei, mas aí ele cai no alert
Q raiva mano rsrs
 
dvd
sei... então o problema deve ser no parâmetro "url" do Ajax... se o erro fosse no destino que retorna o Ajax, cairia no success
quando cai no "error", é porque nem tá enviando a requisição
tem algum erro nisso:
url: '@Url.Action("Create", "Pessoa")',
 
Hummmm
 
dvd
por exemplo, se eu fosse enviar pra uma página php:
url: 'pagina.php',
 
[HttpGet]
[Authorize(Policy = "CanWriteCustomerData")]
[Route("pessoa-gerenciamento/cadastrar-novo/{id:int}")]
public IActionResult Create(int PessoaNaturezaId)
{
var pessoaViewModel = _pessoaAppService.CreateNew();

return View(pessoaViewModel);
}
 
dvd
e essa página não existisse, cairia no "error" porque não foi possível enviar a solicitação
 
8:42 PM
Será que não é a rout não?
Route*
 
dvd
pode ser
essa caminho tá certo?
 
Eu não tenho muita experiencia nisso
Eu tenho 3 actions
Create
Uma delas é esta que precisa passar um int
 
dvd
esse [HttpGet] seria oq?
 
mudei para HttpPost
que deve ser o correto
vou testar
 
dvd
pois eh
 
8:45 PM
Tal do copiar e colar rsrs
 
dvd
se tá enviando o Ajax via post, acho que isso deveria ser post mesmo rs
 
kkkk
Vdd
Ainda cai no alert
aff
Vi um modelo em que um cara passava a url assim:
url: "http://localhost:52346/customer-management/customer-history/" + customerId,
Só que o localhost fica fixo
e se depois mudar? rrs
 
dvd
mas aí o cara tah usando em servidor local
então deve ser isso, o Ajax não tá achando o destino quer vc tah chamando
aí cai no "error"
 
o caminho dele coincide-se com a muinha rota
/customer-management/customer-history/" + customerId,
 
dvd
Lá onde vc faz um $get em this.value === 'Juridica' tá funcionando ou tá dando erro tambem?
 
8:52 PM
Mesmo erro tb
Cai no Alert
Esse asp.net core é cheio de firulas
afff
 
dvd
mas nesse bloco this.value === 'Juridica' não tem alert
$.get('@Url.Action("Create", "Pessoa")', function (data) {
console.log(data);
}).fail(function (jqxhr, status, error) {
console.log(error);
});
 
Eu mexi enquanto estava tc contigo
para ele ficar identico ao do PF
 
dvd
ah tah
então o problema está em 3 pontos:
1. o var PessoaNaturezaId = $(this).data('id');
que foi corrigido
 
dvd
2. o data: PessoaNaturezaId,
Que não sei se é assim mesmo, pode até ser
3. url: '@Url.Action("Create", "Pessoa")',
 
8:56 PM
Isso
 
dvd
mas o problema mesmo é o url: '@Url.Action("Create", "Pessoa")',
o Ajax não tá encontrando o caminho e cai no bloco "error"
 
Pode ser :(
 
dvd
Se conseguir fazer o Ajax cair no success, depois a questão do "data" fica fácil de resolver, se é que precisa
faz uma pergunta específica pra isso
 
Eu removi aquela route
acima da Action
Mas ele deu o mesmo erro
 
dvd
Esse erro acontece pq o Ajax não conseguiu se comunicar com o que vc coloca no "url:"
 
9:03 PM
Vc está certo....
estou pesquisando se acho algo na net
 
dvd
como eu não entendo nada de asp.net não posso nem te ajudar, apenas no seletor do select que estava errado
 
Tipo isso:
<a href="@Url.Action("Information", "Admin", new { id = UrlParameter.Optional })">Add an Admin</a>
 

last day (15 days later) »