JSON没有在PHP中使用include_once调用回调

时间:2015-03-27 14:58:26

标签: php json callback

我正在尝试在通过JSON发布的表单的数据库中插入一些数据。插件的一部分工作,但我无法使回调显示“发送消息”之类的内容。我需要调用include各种输入参数。有人可以帮帮我吗?

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回调:

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).')';

}

0 个答案:

没有答案