JSON не вызывает обратный вызов с помощью include_once в переполнении стека

Я пытаюсь вставить некоторые данные в БД в форме, которая идет через JSON. Часть вставки работает, но я не могу сделать обратный вызов, чтобы отобразить что-то вроде «Сообщение отправлено». Мне нужно позвонить, включить различные входные параметры. Кто-нибудь может мне помочь?

JSON:

var sendForm= function(_form){
form = _form;

if($('#mensagemCadastroOk').length > 0)
mensagemCadastroOk = form.find('#mensagemCadastroOk').val();

if($('#redirecionar').length > 0)
redirecionar = form.find('#redirecionar').val();

debug('-------------------------');
debug('Cadastrar-lead, enviandoDados:' + enviandoDados);debug('Validando form:' + form.attr('id'));
enviandoDados = true;
form.find('.mensagem-erro').hide();
labelBotao = form.find('.cadastrar-lead').html();
form.find('.cadastrar-lead').html('Aguarde...');
var erros = 0;
form.find('.requerido').each(function(){
if($(this).val() == ''){
erros++;
$(this).addClass('form-erro');
debug('Erro:' + $(this).attr('id'));
}else{
$(this).removeClass('form-erro');
}
});

form.find('.valida-email').each(function(){
var campos = $(this);
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if(!re.test(campos.val())){
campos.addClass('form-erro');
debug('Erro valida email:' + $(this).attr('id'));
erros++;
}else{
campos.removeClass('form-erro');
}
});

debug('erros:' + erros);
if(erros > 0){
enviandoDados = false;
form.find('.mensagem-erro').html('Preencha todos os campos em vermelho.');
form.find('.mensagem-erro').stop().slideDown();
$('.cadastrar-lead').html(labelBotao);
}else{
var dados = form.serialize();

var camposAdicionais = '';
form.find('.campos-adicionais').each(function(){
if($(this).val() != '')
camposAdicionais += $(this).data('label') + ': ' + $(this).val() + '<br/>';
});

debug('dados:' + dados);
$.ajax({
type: 'GET',
url: url_sistema + "/file.php?"+dados + '&camposAdicionais='+camposAdicionais,
dataType: "jsonp",
async: true,
jsonp: false,
cache: false,
jsonp: "functionName",
contentType: 'application/jsonp',
jsonpCallback: "cadastroCallBack"});
}}

JSON Callback:

var cadastroCallBack = function(data) {

debug('CallBack');
debug('erro: ' + data['erro'] +' - '+data['mensagem']);

if(data['erro'] == '1'){
form.find('.mensagem-erro').html(data['mensagem']);
form.find('.mensagem-erro').stop().slideDown();
form.find('.cadastrar-lead').html(labelBotao);
enviandoDados = false;
}else if(data['erro'] == '0'){
enviandoDados = false;

form.find('.dados-form').slideUp();

debug('redirecionar:' + redirecionar);
debug('mensagemCadastroOk:' + mensagemCadastroOk);

if(redirecionar != ''){

if(redirecionar.indexOf("?") > 0){
location.href = redirecionar + '&nome=' + data['nome'] + '&email=' + data['email'] + '&telefone=' + data['telefone'];
}else{
location.href = redirecionar + '?nome=' + data['nome'] + '&email=' + data['email'] + '&telefone=' + data['telefone'];
}

}else if(mensagemCadastroOk != ''){
form.find('.mensagem-cadastro').html(mensagemCadastroOk);
form.find('.mensagem-cadastro').slideDown();
$('.mensagem-cadastro').trigger('contentchanged', data);
$('#cadastro').trigger('cadastoOk', data);
}}
}

PHP:

include_once ('includes/file.php');
header('content-type: application/json; charset=utf-8');

if(!empty($_GET)){

$idForm = 1;
$name = $_GET['name'];
$email = $_GET['email'];
$phone= $_GET['phone'];

$sql = "CALL my_insert(
:form,
:email, :name, :phone, :mess,
:id_ad, :url_origem, :url_conv, :ip, :nav, :nav_ver, :plat, @return_value)";
$dadosBind =
array(
'form' => $idForm,
'email' => $email,
'name' => $name,
'phone' => $phone,
'mess' => NULL,
'id_ad' => $_SESSION["id_ad"],
'url_origem' => $_SESSION["url_origem"],
'url_conv' => $currentUrl,
'ip' => $_SERVER['REMOTE_ADDR'],
'nav' => $browser->getBrowser(),
'nav_ver' => $browser->getVersion(),
'plat' => $browser->getPlatform()
);

if($db->ubQuery($sql, $dadosBind)){
$data = array(
'error' => '0'
);
}else{
$data = array(
'error' => '1'
);
}

echo $_GET['functionName'] . '('.json_encode($data).')';

}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector