jQuery Mobile PHP表单 - 获取选中的单选按钮值

时间:2013-10-10 00:58:45

标签: php jquery html jquery-mobile checked

我正在使用我在网上找到的jQuery Mobile Form脚本。除输入=“无线电”按钮外,一切正常。我不是任何jQuery专家,所以我希望有人可以帮助我。

设置

表单脚本包含3个文件:send.php,contact.js和移动标记。有问题的代码示例如下:

移动加价:

<div data-role="fieldcontain">
  <fieldset data-role="controlgroup" data-type="horizontal">
   <legend>Doctor Type:</legend>
   <input type="radio" name="doctortype" id="dmd" value="dmd"/>
    <label for="dd">D.D.</label>
   <input type="radio" name="doctortype" id="dds" value="dds" />
    <label for="do">D.O.</label>
  </fieldset>
</div>

Contact.js

$('#send-feedback').live("click", function() {
var url = 'api/send.php';
var error = 0;
var $contactpage = $(this).closest('.ui-page');
var $contactform = $(this).closest('.contact-form');
$('.required', $contactform).each(function (i) {
    if ($(this).val() === '') {
        error++;
    }
}); // each
if (error > 0) {
        alert('Please fill in all the mandatory fields. Mandatory fields are marked with an asterisk *.');
} else {
    var doctortype = $contactform.find('input[name="doctortype"]').val();
    var firstname = $contactform.find('input[name="firstname"]').val();
    var surname = $contactform.find('input[name="surname"]').val();
    var dob = $contactform.find('input[name="dob"]').val();
    var zip = $contactform.find('input[name="zip"]').val();
    var how = $contactform.find('select[name="how"]').val();
    var email = $contactform.find('input[name="email"]').val();
    var message = $contactform.find('textarea[name="message"]').val();  

    //submit the form
    $.ajax({
        type: "GET",
        url: url,
        data: {doctortype:doctortype, firstname:firstname, surname:surname, dob:dob, zip:zip, how:how, email:email, message:message},
        success: function (data) {
            if (data == 'success') {
                // show thank you
                $contactpage.find('.contact-thankyou').show();
                $contactpage.find('.contact-form').hide();
            }  else {
                alert('Unable to send your message. Please try again.');
            }
        }
    }); //$.ajax

}
return false;
});

Send.php

<?php
header('content-type: application/json; charset=utf-8');

if (isset($_GET["firstname"])) {
$doctortype = strip_tags($_GET['doctortype']);
$firstname = strip_tags($_GET['firstname']);
$surname = strip_tags($_GET['surname']);
$dob = strip_tags($_GET['dob']);
$zip = strip_tags($_GET['zip']);
$how = strip_tags($_GET['how']);
$email = strip_tags($_GET['email']);
$message = strip_tags($_GET['message']);
$header = "From: ". $firstname . " <" . $email . ">"; 

$ip = $_SERVER['REMOTE_ADDR'];
$httpref = $_SERVER['HTTP_REFERER'];
$httpagent = $_SERVER['HTTP_USER_AGENT'];
$today = date("F j, Y, g:i a");    

$recipient = 'MYEMAIL@gmail.com';
$subject = 'Contact Form';
$mailbody = "
Doctor Type: $doctortype
First Name: $firstname
Last Name: $surname
Date of Birth: $dob
Zip Code: $zip
How Did You Learn About Us: $how
Message: $message

IP: $ip
Browser info: $httpagent
Referral: $httpref
Sent: $today
";
$result = 'success';

if (mail($recipient, $subject, $mailbody, $header)) {
    echo json_encode($result);
}
}
?>

THE RUB

表单本身可以正常工作。用户填写信息,点击“发送”,我收到一封包含该信息的电子邮件。但是,我无法获得要检查和发送的已检查无线电的值。

我花了很多时间试图让检查过的无线电值通过必要的步骤。

这就是问题所在。我已经在SO和其他各个地方看过无数类似的帖子,包括jQuery Mobile文档。无济于事。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

你的jQuery在做什么?似乎没有必要做任何jQuery / JavaScript。如果没有它,表单应该将你的单选按钮的值发送到$ _GET ['doctortype'](假设你的表单方法是get)。