2011-12-07 43 views
9

Tôi đang sử dụng php. Tôi muốn biết làm thế nào tôi có thể kiểm tra nếu một nút radio được chọn và nhận được giá trị? tôi có thể kiểm tra nếu nút radio được chọn nhưng tôi không thể nhận được giá trị. Tôi đã tạo một nút để kiểm tra điều này trong biểu mẫu của tôi. Đầu tiên tôi chọn một nút radio, sau đó tôi nhấp vào nút và nó phải hiển thị một thông báo cho biết giá trị nào tôi đã chọn và đặt giá trị này vào một biến. Để kiểm tra nếu một nút radio được chọn tôi đã làm như thế này:Php - kiểm tra nếu nút radio được chọn và nhận giá trị

$selected_radio=$_POST['SINGLE_' . $question->id . $multi_name_adjust . '']; 
if ($selected_radio = 'checked'){} 

Cảm ơn

+2

Chỉ các nút radio được chọn (và hộp kiểm) mới được gửi đến máy chủ. Nếu nó không được chọn, tên sẽ không nằm trong mảng '$ _POST'. –

+0

Bạn có thể sử dụng javascript để xác thực biểu mẫu trước khi gửi cho php hoặc tạo đầu vào bị ẩn với giá trị của tất cả các nút radio, sau đó so sánh và loại bỏ giá trị đã chọn ... –

+0

Lý do câu lệnh if của bạn luôn bằng 'đã chọn' là vì của single = trong điều kiện –

Trả lời

33

Nó khá đơn giản, hãy nhìn vào mã bên dưới:

Hình thức:

<form action="result.php" method="post"> 
    Answer 1 <input type="radio" name="ans" value="ans1" /><br /> 
    Answer 2 <input type="radio" name="ans" value="ans2" /><br /> 
    Answer 3 <input type="radio" name="ans" value="ans3" /><br /> 
    Answer 4 <input type="radio" name="ans" value="ans4" /><br /> 
    <input type="submit" value="submit" /> 
</form> 
đang

PHP:

<?php 

$answer = $_POST['ans']; 
if ($answer == "ans1") {   
    echo 'Correct';  
} 
else { 
    echo 'Incorrect'; 
}   
?> 
+0

Cảm ơn sự giúp đỡ của bạn. Liệu có thể động lực học có được giá trị thay vì nhập nó vào trong mã không? tôi muốn rằng khi người dùng chọn một nút radio, tôi có thể nhận được giá trị tương ứng với nút radio như vậy, nhưng tự động. cảm ơn lần nữa :) – user1073001

+0

Vui lòng thêm một số mã/thông tin khác về ý của bạn. Không hiểu những gì bạn muốn tiếp cận, với mã ở trên bạn nhận được giá trị tương ứng với radio được chọn (nhưng có vẻ như bạn cần cái gì khác?) –

+0

ví dụ, bạn đã làm (nếu $ answer == ans1) .ans1 là giá trị, nhưng bạn phải đặt nó vào trong mã. Tôi muốn thay thế ans1 bằng giá trị động lực. bởi vì người dùng có thể tạo biểu mẫu thông qua giao diện nên họ chọn giá trị của họ cho mỗi nút radio. Nếu họ thay đổi giá trị của nút radio thành ans90 thay vì ans1, tôi phải sửa đổi mã để thực hiện điều đó trong tài khoản: (if answer == ans90). Đó là điều tôi muốn. Có thể không? Cảm ơn – user1073001

1
<?php 
if (isset($_POST['submit']) and ! empty($_POST['submit'])) { 
    if (isset($_POST['radio'])) { 
     $radio_input = $_POST['radio']; 
     echo $radio_input; 
    } 
} else { 

} 
?> 
<form action="radio.php" method="post"> 
    <input type="radio" name="radio" value="v1"/> 
    <input type="radio" name="radio" value="v2"/> 
    <input type="radio" name="radio" value="v3"/> 
    <input type="radio" name="radio" value="v4"/> 
    <input type="radio" name="radio" value="v5"/> 
    <input type= "submit" name="submit"value="submit"/> 
</form> 
+0

Bạn có thể thêm các giải thích khác không? – jml

+0

Ok đầu tiên bạn phải lưu ý rằng thuộc tính name trong thẻ đầu vào là những gì php và ngôn ngữ phía máy chủ khác sử dụng để có được đầu vào của người dùng. Vì vậy, tôi sử dụng để cung cấp cho nút gửi một thuộc tính tên và giá trị. bằng cách làm như vậy, tôi biết khi nào nút gửi được nhấp. Điều đó nói rằng tôi giải thích mã. Các if (isset ($ _ POST ['submit']) kiểm tra nếu bất kỳ đầu vào có giá trị gửi trong trường hợp này là nút gửi có nó.Vì vậy, bên php sẽ không được thực hiện nếu nút gửi không được nhấp vào. lồng nhau nếu (isset ($ _ POST ['radio'])) kiểm tra xem có bất kỳ nút radio nào được kiểm tra hay không. – Ezugudor

-1

hình thức của tôi:

<form method="post" action="radio.php"> 
    select your gender: 
    <input type="radio" name="radioGender" value="female"> 
    <input type="radio" name="radioGender" value="male"> 
    <input type="submit" name="btnSubmit" value="submit"> 
</form> 

php của tôi:

<?php 
     if (isset($_POST["btnSubmit"])) { 
     if (isset($_POST["radioGender"])) { 
     $answer = $_POST['radioGender']; 
      if ($answer == "female") { 
       echo "female"; 
      } else { 
       echo "male"; 
      }  
     }else{ 
      echo "please select your gender"; 
      } 
     } 
    ?> 
+0

Trong php đầu tiên chúng ta kiểm tra xem nút gửi có được đặt thành true hay không, sau đó chúng tôi kiểm tra xem nút radio có được đặt thành true hay không không, nếu đúng thì làm gì đó .... –

0

Tôi đề nghị bạn làm điều đó thông qua các yêu cầu GET: ví dụ, index.html:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<form action="result.php" method="post"> 
    Answer 1 <input type="radio" name="ans" value="ans1" /><br /> 
    Answer 2 <input type="radio" name="ans" value="ans2" /><br /> 
    Answer 3 <input type="radio" name="ans" value="ans3" /><br /> 
    Answer 4 <input type="radio" name="ans" value="ans4" /><br /> 
    <input type="button" value="submit" onclick="sendPost()" /> 
</form> 
<script type="text/javascript"> 
    function sendPost(){ 
     var value = $('input[name="ans"]:checked').val(); 
     window.location.href = "sendpost.php?ans="+value; 
    }; 
</script> 

này là sendpost.php:

<?php 
if(isset($_GET["ans"]) AND !empty($_GET["ans"])){ 
    echo $_GET["ans"]; 
} 
?> 
1

hãy nhìn vào mã này

<form action="result.php" method="post"> 
Answer 1 <input type="radio" name="ans" value="ans1" /><br /> 
Answer 2 <input type="radio" name="ans" value="ans2" /><br /> 
Answer 3 <input type="radio" name="ans" value="ans3" /><br /> 
Answer 4 <input type="radio" name="ans" value="ans4" /><br /> 
<input type="submit" value="submit" /> 
</form> 

php

<?php 
if(isset($_POST['submit'])){ 
if(isset($_POST['ans'])){ 
echo "This is the value you are selected".$_POST['ans'];   
}   
} 
?> 
2

Một cách rất hiệu quả hơn để làm điều này trong php:

<form action="#" method="post"> 
<select name="Color"> 
<option value="Red">Red</option> 
<option value="Green">Green</option> 
<option value="Blue">Blue</option> 
<option value="Pink">Pink</option> 
<option value="Yellow">Yellow</option> 
</select> 
<input type="submit" name="submit" value="Get Selected Values" /> 
</form> 
<?php 
if(isset($_POST['submit'])){ 
$selected_val = $_POST['Color']; // Storing Selected Value In Variable 
echo "You have selected :" .$selected_val; // Displaying Selected Value 
} 
?> 

và cho các hộp kiểm tra nhiều sự lựa chọn:

<form action="#" method="post"> 
<select name="Color[]" multiple> // Initializing Name With An Array 
<option value="Red">Red</option> 
<option value="Green">Green</option> 
<option value="Blue">Blue</option> 
<option value="Pink">Pink</option> 
<option value="Yellow">Yellow</option> 
</select> 
<input type="submit" name="submit" value="Get Selected Values" /> 
</form> 
<?php 
if(isset($_POST['submit'])){ 
// As output of $_POST['Color'] is an array we have to use foreach Loop to display individual value 
foreach ($_POST['Color'] as $select) 
{ 
echo "You have selected :" .$select; // Displaying Selected Value 
} 
?> 
2

Chỉ cần sử dụng isset ($ _ POST ['radio']) để bất cứ khi nào tôi nhấp vào bất kỳ nút radio nào, nút được nhấp được đặt thành bài đăng.

<form method="post" action="sample.php"> 
select sex: 
<input type="radio" name="radio" value="male"> 
<input type="radio" name="radio" value="female"> 

<input type="submit" value="submit"> 
</form> 

<?php 

if (isset($_POST['radio'])){ 

    $Sex = $_POST['radio']; 
} 
    ?> 
Các vấn đề liên quan