0
I am trying to send data in javascript json format to php according to the codes below. However, the result of var_dump($_data) is always NULL. I tested the javascript activity array and it is ok, with the data that should be.
Javascript:
var gravaDados = function(){
$.ajax({
url : "./php/xml-request.php",
type : 'post',
data : {
set_optx : "",
dados : (JSON.stringify(atividades)),
regiao :'Itabira'
}
})
.done(function(msg){
alert(msg);
})
.fail(function(jqXHR, textStatus, msg){
alert(msg);
});
}
PHP:
if(isset($_POST['set_optx'])){
$_dados = json_decode($_POST['dados']);
$_regiao = $_POST['regiao'];
var_dump($_dados);
// Receberá todos os dados do XML
$xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n";
$xml.= "<regiao>".$_regiao."</regiao>\n";
// A raiz do meu documento XML
$xml .= "<atividades>\n";
for ( $i = 0; $i < count( $_dados ); $i++ ) {
$xml .= "\t<atividade>\n";
$xml .= "\t\t<prefixo>" . $_dados[$i]->{"prefixo"} . "</prefixo>\n";
$xml .= "\t\t<local_troca>" . $_dados[$i]->{"local_troca"} . "</local_troca>\n";
$xml .= "\t\t<horario>" . $_dados[$i]->{"horario"} . "</horario>\n";
$xml .= "\t\t<veiculo>" . $_dados[$i]->{"veiculo"} . "</veiculo>\n";
$xml .= "\t\t<atividade>" . $_dados[$i]->{"atividade"} . "</atividade>\n";
$xml .= "\t\t<matricula>" . $_dados[$i]->{"matricula"} . "</matricula>\n";
$xml .= "\t\t<nome>" . $_dados[$i]->{"nome"} . "</nome>\n";
$xml .= "\t</atividade>\n";
}
$xml .= "</atividades>\n";
// Escreve o arquivo
$fp = fopen('_dados.xml', 'w+');
fwrite($fp, $xml);
fclose($fp);
}
It worked without dataType, but is sending as array and not json.
– Dan Pimentel
The
dataType
ensures that the answer is JSON and if it is not the error, but the sending is not. Try puttingconsole.log(JSON.stringify(atividades));
to validate if the value is correct. And because sending the data has to be JSON the other information does not?– Leonardo Barros