передать значения флажка в ajax - PullRequest
0 голосов
/ 13 июня 2011

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

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

вот мой код:

(снова - все работает, но флажки и я убрали такие мелочи, как проверка других вещей, так что их будет легко читать)

<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 = 'ddsds@gmail.com';
   $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);
?>

что я делаю не так? спасибо,

1 Ответ

4 голосов
/ 13 июня 2011
            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();

Он будет работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...