2011-06-13 3 views
0

мой javascript и php очень низки на данный момент, и я пытаюсь сделать что-то действительно просто, но просто могу это сделать!передать значения checkbox в ajax

У меня есть форма, и я хочу, чтобы значения checbox (те, кто отмечен как обмен) были переданы в файл, который им нужно получить (все это хорошо и передано, кроме флажков), а оттуда электронная почта (которая работает также, кроме флажков).

вот мой код:

(опять же - все работает, но флажки и я извлекал мелкие вещи, как проверка других вещей, так что это будет 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

+0

я сделал это несколько раз, но это не не делал ничего – ronen

+0

я знаю, что мне нужно, чтобы добавить его, но я не пытался и до сих пор ничего, его сейчас здесь нет, потому что, может быть, я забыл чтобы положить его в exmple ...... но какое же решение? – ronen

ответ

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

wow man Я работал над этим так долго, что вы король !!! – ronen

Смежные вопросы