2011-06-13 135 views
0

我的JavaScript和PHP是非常低的时刻,我正在尝试做一些非常简单的事情,但只是可以做到这一点!通过ajax复选框的值

我有一个表单,我希望将checbox的值(标记为ofcourse的那些值)传递给他们需要到达的文件(它的所有优点并通过除复选框外),然后从那里传递给电子邮件(除了复选框之外,它也起作用)。

这里是我的代码:

(再次 - 一切正常,但复选框和我删除了像其他的事情验证的小东西,所以这将是comfterble阅读)

<script type="text/javascript"> 
    jQuery(function() { 

     jQuery(".button").click(function() { 
      // validate and process form 
      // first hide any error messages 
      jQuery('.error').hide(); 

      var name = jQuery("input#name").val(); 

      var email = jQuery("input#email").val(); 

      var phone = jQuery("input#phone").val(); 


      var dataString = 'name=' + name + '&email=' + email + '&phone=' + phone; 
      //alert (dataString);return false; 

      jQuery.ajax({ 
       type: "POST", 
       url: "mitkadmim.php", 
       data: dataString, 
       success: function() { 
        jQuery('#contact_form').html("<div id='message'></div>"); 
        jQuery('#message').html("<h2>Contact Form Submitted!</h2>") 
         .append("<p>We will be in touch soon.</p>") 
         .hide() 
         .fadeIn(1500, function() { 
         jQuery('#message').append("<img id='checkmark' src='images/check.png' />"); 
        }); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 


    <div id="mheo"> 

     <div id="contact_form"> 
      <form name="contact" method="post" action=""> 
      <fieldset> 
       <label for="name" id="name_label">שם: </label> 
       <input type="text" name="name" id="name" size="30" value="" class="text-input" /><br/><br/> 

       <label for="email" id="email_label">E-mail: </label> 
       <input type="text" name="email" id="email" size="30" value="" class="text-input" /><br/><br/> 


       <label for="phone" id="phone_label">מס. טלפון</label> 
       <input type="text" name="phone" id="phone" size="30" value="" class="text-input" /><br/><br/> 

     intrested in:<br/> 
       <input type="checkbox" name="kidumchoise[]" value="kidum_esek" />aaa<br /> 
       <input type="checkbox" name="kidumchoise[]" value="mitug_esek" />bbb<br /> 
       <input type="checkbox" name="kidumchoise[]" value="laikim" />CCC<br /> 
       <input type="checkbox" name="kidumchoise[]" value="aher" />DDD<br /> 


       <br /> 
       <input type="submit" name="submit" class="button" id="submit_btn" value="Send" /> 
      </fieldset> 
      </form> 
     </div> 
    </div> 

和电子邮件侧

<?php 
    $recipient = '[email protected]'; 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $phone = $_POST['phone']; 
    $kidumchoise = $_POST['kidumchoise']; 

    $msg = "Message from: $name\n\n".$_POST['phone']."\n".$_POST['email'].$_POST['kidumchoise']." \n""\n".$_POST['kidumchoise']."\n"; 
    mail($recipient, $name , $msg); 
?> 

我做错了什么? 感谢,

+0

@romen我看不到复选框添加到dataString – Pradeep 2011-06-13 00:27:25

+0

我做了几次,但它没有做任何事情 – ronen 2011-06-13 00:37:28

+0

我知道我需要添加它,但我试过了,仍然没有,它不在这里,因为也许我忘了把它放在例子...... 但是整体解决方案是什么? – ronen 2011-06-13 00:38:39

回答

4
  var chkElem = document.getElementsByName("kidumchoise[]"); 
      var choice =""; 

      for(var i=0; i< chkElem.length; i++) 
      { 
       if(chkElem[i].checked) 
        choice = choice + chkElem[i].value; 
      } 

      var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone + '&kidumchoise=' +choice; 

添加以下代码下面一行

   var phone = jQuery("input#phone").val(); 

后它才正常工作。

+0

哇,我正在为此工作这么久你是国王! – ronen 2011-06-13 11:21:18