Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kim sue il

[Resolvido] Gigantesco problema com $.post do JQuery

Recommended Posts

Não sei se este é o fórum correto, caso não seja... peço desculpas desde já...

 

Enfim, tenho o seguinte código:

 

function SalvarGolpes() { 

var a = $("#golpes").text();
golpe = a.split('.');

$.post("alterar_golpes.php", {"golpes" : a} , function() {

 },"JSON");

  $(".golpes").sortable("refresh");

	}

 

Quando eu clico em um submit, chamo essa função com o onClick...

pego 10 elementos do #golpes (são 10 golpes, como Soco, Soco, Chute, Soco, Chute, Voadora...etc)

até aí tudo bem... coloquei um alert nessa parte e vi que está recebendo os golpes normalmente...

 

No $.post é que está o problema... ele envia para a seguinte página:

 

$todos_golpes = $_REQUEST['golpes'];
$golpes = explode('.',$todos_golpes);
$golpe1_n = ltrim($golpes[0]);
$golpe2_n = ltrim($golpes[1]);
$golpe3_n = ltrim($golpes[2]);
$golpe4_n = ltrim($golpes[3]);
$golpe5_n = ltrim($golpes[4]);
$golpe6_n = ltrim($golpes[5]);
$golpe7_n = ltrim($golpes[6]);
$golpe8_n = ltrim($golpes[7]);
$golpe9_n = ltrim($golpes[8]);
$golpe10_n = ltrim($golpes[9]);

mysql_query("UPDATE golpes SET golpe1 = '$golpe1_n', golpe2 = '$golpe2_n', golpe3 = '$golpe3_n', golpe4 = '$golpe4_n', golpe5 = '$golpe5_n', golpe6 = '$golpe6_n', golpe7 = '$golpe7_n', golpe8 = '$golpe8_n', golpe9 = '$golpe9_n', golpe10 = '$golpe10_n' WHERE id_usu = '$id'") or die(mysql_error());

 

E é aí que ferra tudo, não está salvando... tentei receber a variável como POST, tentei usar extracr($_POST)... enfim, tentei tudo o que me veio à mente... coloquei echo's e alert's nessa segunda página e não retorna nada, sei lá... parece que não está chamando a página... Alguém poderia me ajudar?

Essa código funcionava... não mexi nele, simplesmente parou de funcionar o.O

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use json_decode() para transformar a sua JSON em um array. Depois use esse extract no indice 'golpes' desse array.

 

$todos_golpes = json_decode($_POST['golpes']);

$todos_golpes = extract($todos_golpes);

$golpes = explode('.',$todos_golpes);

$golpe1_n = ltrim($golpes[0]);

$golpe2_n = ltrim($golpes[1]);

$golpe3_n = ltrim($golpes[2]);

$golpe4_n = ltrim($golpes[3]);

$golpe5_n = ltrim($golpes[4]);

$golpe6_n = ltrim($golpes[5]);

$golpe7_n = ltrim($golpes[6]);

$golpe8_n = ltrim($golpes[7]);

$golpe9_n = ltrim($golpes[8]);

$golpe10_n = ltrim($golpes[9]);

 

Não entendi muito bem... eu faço json_decode($_POST['golpes']) aí eu faço o explode "." no resultado... e só depois eu faço o extract no array gerado, é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim.

 

Mas, primeiramente você deve testar se $_POST['golpes'] realmente existe ou se não é uma string vazia:

 

if (!isset($_POST['golpes']) {
  echo '$_POST['golpes'] não existe';
  exit;
}

if (empty($_POST['golpes']) {
  echo '$_POST['golpes']' é uma string vazia';
}

 

 

Se a string estiver encodada em JSON, é preciso fazer a decodificação antes. A função json_decode transforma uma string no formato JSON em um Array. Ex:

 

JSON

{a: 1, b: 2}

 

Será transformado no Array

array ('a' => 1, 'b' => 2);

 

Um erro aqui que eu notei agora: no seu código você transformou uma string contida em 'a' em um Array usando split e armazenou em 'golpe'...

golpe = a.split('.');

 

Mas ao invés de mandar essa variável 'golpe', você manda 'a', que ainda é uma string... :-/

Compartilhar este post


Link para o post
Compartilhar em outros sites

É aí que está o problema... eu não consigo saber o que estou recebendo na página "alterar_golpes"...

 

É como se não estivesse direcionando para ela... coloquei vários echo's e alert's e não retonava nada...

me parece que não está indo para a alterar_golpes...

Coloquei a variável 'golpe' em vez de 'a' e o erro persiste, quer dizer... o único problema é que não salva no BD, e o f*** é que não mostra nenhum erro para que eu saiba o que está errado :[

 

no momento está assim:

 

 

$todos_golpes = json_decode($_POST['golpes']);
$todos_golpes = extract($todos_golpes);
$golpes = explode('.',$todos_golpes);
$golpe1_n = ltrim($golpes[0]);
$golpe2_n = ltrim($golpes[1]);
$golpe3_n = ltrim($golpes[2]);
$golpe4_n = ltrim($golpes[3]);
$golpe5_n = ltrim($golpes[4]);
$golpe6_n = ltrim($golpes[5]);
$golpe7_n = ltrim($golpes[6]);
$golpe8_n = ltrim($golpes[7]);
$golpe9_n = ltrim($golpes[8]);
$golpe10_n = ltrim($golpes[9]);
echo "<script type='text/javascript'>alert('Mostre-me algo...');</script>";
echo "Exiba algo...";
mysql_query("UPDATE golpes SET golpe1 = '$golpe1_n', golpe2 = '$golpe2_n', golpe3 = '$golpe3_n', golpe4 = '$golpe4_n', golpe5 = '$golpe5_n', golpe6 = '$golpe6_n', golpe7 = '$golpe7_n', golpe8 = '$golpe8_n', golpe9 = '$golpe9_n', golpe10 = '$golpe10_n' WHERE id_usu = '$id'") or die(mysql_error());

 

Não entendo... nem o alert e nem o echo estão sendo exibidos... parece que não está indo a esta página :[

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se está mais para PHP ou Javascript, mas Webstandards com certeza não é.

 

Movido:

Webstandards :seta: Javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pôs o alert assim?

$.post("alterar_golpes.php", {"golpes" : a} , function(data) {
alert(data);
 },"JSON");

 

Sim... desse jeito não me retorna nada... se coloco acima ou abaixo do $.post me retorna o array...

pesquisei em vários sites e não vi erro algum em : $.post("alterar_golpes.php", {"golpes" : a} , function(data) {...

 

Não consigo entender o que há de errado :[

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim... desse jeito não me retorna nada... se coloco acima ou abaixo do $.post me retorna o array...

pesquisei em vários sites e não vi erro algum em : $.post("alterar_golpes.php", {"golpes" : a} , function(data) {...

 

Não consigo entender o que há de errado :[

 

Mas só vai retornar alguma coisa se houver uma saída no script php, como um 'echo' ou um 'print'. Tente colocar o seguinte logo no início do arquivo PHP:

var_dump($_POST);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas só vai retornar alguma coisa se houver uma saída no script php, como um 'echo' ou um 'print'. Tente colocar o seguinte logo no início do arquivo PHP:

var_dump($_POST);

 

Opa... agora funcionou *-*

 

Ufffa... MUITO obrigado cara, desculpe por tudo... obrigado mesmo!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.