2016-06-14 9 views
0

私は非常に単純なHTMLフォームを持っています。フォームはPHPファイルに接続されているので、結果を私にメールします。しかし、私はラジオボタンに問題があります。ユーザーが選択するラジオボタンに関係なく、電子メールは常に、ユーザーが最初のラジオボタンを選択したことを示します。私のフォームは常に最初のオプションを送信します

私はいくつかの研究を行いました。私は「エコー$ジェンダー」と書く必要があると思います。どこかのPHPファイルにあります。私はこれを試しましたが、Dreamweaverでは常に構文エラーとしてマークしています。

HTML::

<form> 
<input type="radio" name="gender" id="gender" value="female" /> Female<br> 
<input type="radio" name="gender" id="gender" value="male" checked /> Male<br> 
</form> 

Javascriptを:

$(function() { 
$("input,textarea").jqBootstrapValidation({ 
    preventSubmit: true, 
    submitError: function($form, event, errors) { 
     // additional error messages or events 
    }, 
    submitSuccess: function($form, event) { 
     // Prevent spam click and default submit behaviour 
     $("#btnSubmit").attr("disabled", true); 
     event.preventDefault(); 

     // get values from form 
     var gender = $("input#gender").val(); 

     $.ajax({ 
      url: "././mail/contact_me.php", 
      type: "POST", 
      data: {gender: gender}, 
      cache: false, 
      success: function() { 
       // Enable button & show success message 
       $("#btnSubmit").attr("disabled", false); 
       $('#success').html("<div class='alert alert-success'>"); 
       $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
        .append("</button>"); 
       $('#success > .alert-success') 
        .append("<strong>Your message has been sent. </strong>"); 
       $('#success > .alert-success') 
        .append('</div>'); 

       //clear all fields 
       $('#contactForm').trigger("reset"); 
      }, 
      error: function() { 
       // Fail message 
       $('#success').html("<div class='alert alert-danger'>"); 
       $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
        .append("</button>"); 
       $('#success > .alert-danger').append("<strong>Sorry, it seems that my mail server is not responding. Please try again later!"); 
       $('#success > .alert-danger').append('</div>'); 
       //clear all fields 
       $('#contactForm').trigger("reset"); 
      }, 
     }) 
    }, 
    filter: function() { 
     return $(this).is(":visible"); 
    }, 
}); 

$("a[data-toggle=\"tab\"]").click(function(e) { 
    e.preventDefault(); 
    $(this).tab("show"); 
}); 
}); 

PHP:

<?php 
$gender = $_POST['gender']; 
// Create the email and send the message 
$to = '[email protected]'; 
$email_subject = "New message from contact form"; 
$email_body = "Gender: $gender \n\nPress 'reply' to respond to the sender."; 
$headers = "From: [email protected]\n"; 
return true;    
?> 
+0

$(document).ready(function(){ $('input[type=radio][name=gender]').change(function() { var c= $("input[name='gender']:checked").val(); alert(c) }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form> <input type="radio" name="gender" class="gender" value="female" /> Female<br> <input type="radio" name="gender" class="gender" value="male" checked /> Male<br> </form>

まあ..あなたがjQueryの構文を使用している、いないPHP ...多くのコードを投稿してください。そして、なぜあなたは$ room_typeを書く必要がありますか?それには何が含まれていますか?性別?私は混乱しています:p – entiendoNull

+0

申し訳ありません、私の間違い。私は "room_type"ではなく "gender"をタイプすることを意味しました。 –

+0

このフォームをどのように提出していますか? AJAXによって?この 'var gender = $(" input#gender ")val();'はPHPではなく、JavaScript(jQuery)です。あなたのPHPスクリプトはどのように見えますか? – entiendoNull

答えて

0

PHPではなくjQueryを意味すると思います。また、あなたが探していることです。私がやったこと

<form> 
    <input type="radio" name="gender" class="gender" value="female" /> Female<br> 
    <input type="radio" name="gender" class="gender" value="male" checked /> Male<br> 
</form> 

var gender = $("input.gender:checked").val(); 

class .id #を変更です。 :checkedをjQueryセレクタに追加しました。これにより、常に選択した項目が取得されます。

幸運を祈る!

+0

ありがとうございました。 :D –

1

どちらのIDが原因となる、同じです。ここ

は不可欠コードです大きな問題。 IDは常にページ上で一意でなければなりません。 IDが最初に結びついているので、これは最初のものです。

0

は、あなたがこのように取得することができ、あなたはjQueryのためにチェックラジオボタン

の値を取得する必要があり、その後、チェックボックスの値を取得するためにjqueryのを使用している場合は、このような$gender = $_REQUEST['gender'];のためのPHPコードを使用する必要があります。

var gender = jQuery('input[name="gender"]:checked').val(); 
0

選択した性別ラジオボタンを取得するには、次のコードを試してください。

関連する問題