Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
>
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?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... :-/
É 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 :[
Não sei se está mais para PHP ou Javascript, mas Webstandards com certeza não é.
Movido:
Webstandards :seta: Javascript
Você pôs o alert assim?
$.post("alterar_golpes.php", {"golpes" : a} , function(data) {
alert(data);
},"JSON");>
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 :[
>
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);
>
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!!!
Use json_decode() para transformar a sua JSON em um array. Depois use esse extract no indice 'golpes' desse array.