Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Codeigniter上的jquery ajax表单存在问题_Javascript_Jquery_Ajax_Forms_Codeigniter - Fatal编程技术网

Javascript Codeigniter上的jquery ajax表单存在问题

Javascript Codeigniter上的jquery ajax表单存在问题,javascript,jquery,ajax,forms,codeigniter,Javascript,Jquery,Ajax,Forms,Codeigniter,每次我测试电子邮件是否正确发送。(我在PC上测试过:IE6、IE7、IE8、Safari、Firefox、Chrome。MAC:Safari、Firefox、Chrome。) 在jquery(javascript)中完成的_POST。然后,当我关闭浏览器中的javascript时,什么也不会发生,因为没有发布任何内容 Nome: Jon Doe Empresa: Star Cargo: Developer Email: jondoe@test.com Telefone: 0909092229

每次我测试电子邮件是否正确发送。(我在PC上测试过:IE6、IE7、IE8、Safari、Firefox、Chrome。MAC:Safari、Firefox、Chrome。)

在jquery(javascript)中完成的_POST。然后,当我关闭浏览器中的javascript时,什么也不会发生,因为没有发布任何内容

Nome: Jon Doe
Empresa: Star 
Cargo: Developer
Email:  jondoe@test.com
Telefone: 090909222988
Assunto:  Subject here..
但我一直收到来自客户的类似邮件:

Nome:
Empresa:
Cargo:
Email:
Telefone:
Assunto:

联系www.PHP

    <form name="frm" id="frm">                
    <div  class="campoFormulario nomeDeCampo texto textocinzaescuro" >Nome<font style="color:#EE3063;">*</font></div>
    <div  class="campoFormulario inputDeCampo" ><input class="texto textocinzaescuro"  size="31" name="Cnome" id="Cnome" value=""/></div>


    <div  class="campoFormulario nomeDeCampo texto textocinzaescuro" >Empresa<font style="color:#EE3063;">*</font></div>
    <div  class="campoFormulario inputDeCampo" ><input class="texto textocinzaescuro"  size="31"  name="CEmpresa"  id="CEmpresa" value=""/></div>

    <div  class="campoFormulario nomeDeCampo texto textocinzaescuro" >Cargo</div>
    <div  class="campoFormulario inputDeCampo" ><input class="texto textocinzaescuro"  size="31"  name="CCargo" id="CCargo" value=""/></div>

    <div  class="campoFormulario nomeDeCampo texto textocinzaescuro" >Email<font style="color:#EE3063;">*</font></div>
    <div  class="campoFormulario inputDeCampo" ><input class="texto textocinzaescuro"  size="31"  name="CEmail" id="CEmail" value=""/></div>


    <div  class="campoFormulario nomeDeCampo texto textocinzaescuro" >Telefone</div>
    <div  class="campoFormulario inputDeCampo" ><input class="texto textocinzaescuro"  size="31"  name="CTelefone" id="CTelefone" value=""/></div>

    <div  class="campoFormulario nomeDeCampo texto textocinzaescuro" >Assunto<font style="color:#EE3063;">*</font></div>
    <div  class="campoFormulario inputDeCampo" ><textarea class="texto textocinzaescuro"  name="CAssunto" id="CAssunto" rows="2" cols="28"></textarea></div>

    <div  class="campoFormulario nomeDeCampo texto textocinzaescuro" >&nbsp;</div>
    <div  class="campoFormulario inputDeCampo" style="text-align:right;" ><input id="Cbutton" class="texto textocinzaescuro"  type="submit" name="submit" value="Enviar" /></div>
    </form>





<script type="text/javascript">

$(function() {
    $("#Cbutton").click(function() {

      if(validarForm()){
           var Cnome = $("input#Cnome").val(); 
           var CEmpresa = $("input#CEmpresa").val(); 
           var CEmail = $("input#CEmail").val();
           var CCargo = $("input#CCargo").val(); 
           var CTelefone = $("input#CTelefone").val(); 
           var CAssunto = $("textarea#CAssunto").val(); 


          var dataString = 'nome='+ Cnome + '&Empresa=' + CEmpresa + '&Email=' + CEmail + '&Cargo=' + CCargo + '&Telefone=' + CTelefone + '&Assunto=' + CAssunto;
          //alert (dataString);return false;

          $.ajax({
        type: "POST",
        url: "http://www.myserver.com/index.php/pt/envia", 
        data: dataString,
        success: function() {
          $('#frm').remove();
          $('#blocoform').append("<br />Obrigado. <img id='checkmark' src='http://www.myserver.com/public/images/estrutura/ok.gif' /><br />Será contactado brevemente.<br /><br /><br /><br /><br /><br />")
          .hide()
          .fadeIn(1500);

        }
          });
     } 
     return false; 

    });


  });

function validarForm(){
    var error = 0;

    if(!validateNome(document.getElementById("Cnome"))){ error = 1 ;}            
    if(!validateNome(document.getElementById("CEmpresa"))){ error = 1 ;}           
    if(!validateEmail(document.getElementById("CEmail"))){ error = 1 ;}            
        if(!validateNome(document.getElementById("CAssunto"))){ error = 1 ;}            

     if(error == 0){
        //frm.submit();
            return true;
     }else{
            alert('Preencha os campos correctamente.');
            return false;
         }
    }

function validateNome(fld){
        if( fld.value.length == 0  ){
        fld.style.backgroundColor = '#FFFFCC';
        //alert('Descrição é um campo obrigatório.');
        return false;
        }else {
           fld.style.background = 'White';
       return true;
        }
}

function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
    var tfld = trim(fld.value);                       
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;

    if (fld.value == "") {
        fld.style.background = '#FFFFCC';
            //alert('Email é um campo obrigatório.');
        return false;
    } else if (!emailFilter.test(tfld)) {
            //alert('Email inválido.');
        fld.style.background = '#FFFFCC';
        return false;
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = '#FFFFCC';
            //alert('Email inválido.');
        return false;
    } else {
        fld.style.background = 'White';
       return true;
    }
}
</script>

您需要为表单ACTION=”指定ACTION属性http://www.myserver.com/index.php/pt/envia“,因为您正在发布到contact_form.php,我猜您不想在这里发布AJAX代码

第二次编辑:

您还需要指定表单的METHOD属性。当前禁用JavaScript时,表单通过GET发送,您正在查找POST变量

<form name="frm" id="frm" method="post">

您需要为表单ACTION=”指定ACTION属性http://www.myserver.com/index.php/pt/envia“,因为您正在发布到contact_form.php,我猜您不想在这里发布AJAX代码

第二次编辑:

您还需要指定表单的METHOD属性。当前禁用JavaScript时,表单通过GET发送,您正在查找POST变量

<form name="frm" id="frm" method="post">

尝试以下代码:

var add_member_form=document.getElementById('frm'); 
$.ajax({type:'POST', url: add_member_form.action, data:$('#frm').serialize(),
        success: function(response) {           
            alert(response);
        }
});
请尝试以下代码:

var add_member_form=document.getElementById('frm'); 
$.ajax({type:'POST', url: add_member_form.action, data:$('#frm').serialize(),
        success: function(response) {           
            alert(response);
        }
});

contact_form.php不是一个文件,它是“pt”控件中名为“envia”的函数。如果您缺少method=“post”,默认情况下表单将作为GET发送。不,不需要在表单上指定“action”。这篇文章是通过
$.ajax
调用完成的,这里显然提供了一个URL。他也不需要
标签上的“method”属性,因为帖子是通过ajax生成的(并且“type”是明确指定的)。@Pointy他在禁用JavaScript时遇到了问题,JavaScript使表单只依赖HTML,而他喜欢的ajax代码从未被调用。如果没有方法属性,它将作为GET发送。当CodeIgniter路由页面时,GET将丢失,并且无法通过$\u POST结构访问。先看他的问题。@Pointy他收到了电子邮件,因为如果没有action属性,它将提交到同一个页面,这是我最初不知道的@CodeBurn您收到的电子邮件是空的,因为如果您没有method=“post”,表单使用的默认方法将是GET,并且您正在电子邮件发送函数中查找post变量。请添加method=“post”并在不使用javascript的情况下测试脚本是否正常工作。contact_form.php不是一个文件,它是“pt”控件中名为“envia”的函数。如果您缺少method=“post”,默认情况下表单将作为GET发送。不,不需要在表单上指定“action”。这篇文章是通过
$.ajax
调用完成的,这里显然提供了一个URL。他也不需要
标签上的“method”属性,因为帖子是通过ajax生成的(并且“type”是明确指定的)。@Pointy他在禁用JavaScript时遇到了问题,JavaScript使表单只依赖HTML,而他喜欢的ajax代码从未被调用。如果没有方法属性,它将作为GET发送。当CodeIgniter路由页面时,GET将丢失,并且无法通过$\u POST结构访问。先看他的问题。@Pointy他收到了电子邮件,因为如果没有action属性,它将提交到同一个页面,这是我最初不知道的@CodeBurn您收到的电子邮件是空的,因为如果您没有method=“post”,表单使用的默认方法将是GET,并且您正在电子邮件发送函数中查找post变量。请添加method=“post”并在不使用javascript的情况下测试脚本,以确保其工作正常。