2016-10-14 11 views
0

ここで私はデータベースからデータを取得しています。チェックボックスを使用してデータの挿入、更新、削除を行っています。私は2つ以上のチェックボックスをクリックすると移動していますupdate.phpのページに表示されますが、私が実際に望むのは、最初に更新ボタンをクリックすると、リストから選択されているチェックボックスが1つのみチェックされます。助けてください。ありがとうございます。 ここに私のコードを入れました。チェックボックスを1つだけチェックする方法チェックボックスリスト

<!DOCTYPE html> 
<html> 
<head> 
    <title>Insert Update Delete</title> 
</head> 
<body> 
<form name="dataform" id="data" action="" method="get"> 
<?php 
$connection = mysql_connect("localhost", "root", ""); 
$db = mysql_select_db("db_new", $connection); 
$query=mysql_query("select * from student_info"); 
echo "<table>"; 
while($row=mysql_fetch_array($query)) 
{ 
    echo "<tr>"; 
    echo "<td>"; ?> <input type="checkbox" id="box" name="num[]" class="other" value="<?php echo $row["id"];?>" /> <?php echo "</td>"; 
    echo "<td>"; echo $row["roll_no"]; echo "</td>"; 
    echo "<td>"; echo $row["name"]; echo "</td>"; 
    echo "<td>"; echo $row["division"]; echo "</td>"; 
    echo "<td>"; echo $row["std"]; echo "</td>"; 
    echo "<td>"; echo $row["gender"]; echo "</td>"; 
    echo "<td>"; echo $row["subject"]; echo "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 
?> 
    <input type="submit" name="insert" value="insert"/> 
    <input type="submit" name="update" value="update"/> 
    <input type="submit" name="delete" value="delete"/> 
    </div> 
</form> 
<?php 
if(isset($_GET["insert"])) 
{ 
    $box = $_GET['num']; 
    $count =count($box); 
    if ($count == 0){ 
     header('Location:insert.php'); 
    } 
    elseif($count == 1){ 
     header('Location:data.php'); 
    } 
} 
?> 
<?php 
if (isset($_GET['update'])){ 
    $box = $_GET['box']; 
    $count =count($box); 
    if($count == 0) { 
     header('Location:data.php'); 
    }elseif($count == 1){ 
     header('Location:update.php'); 
    } 
    if(!empty($_GET['num'])) { 
     foreach($_GET['num'] as $id) { 
      echo $id; 
      header("location:update.php?id=".$id); 
     } 
    } 
} 

?> 
<?php 
if (isset($_GET['delete'])) { 
    $box = $_GET['num']; 
    $count = count($box); 
    if($count == 0) { 
     header('Location:data.php'); 
    }elseif($count == 1){ 
     header('Location:data.php'); 
    } 
    if(!empty($_GET['num'])) { 
     foreach($_GET['num'] as $id) { 
      mysql_query("delete from student_info where id = $id"); 
     } 
    } 
} 
?> 
</body> 
</html> 
+3

野生のアイデア。たぶんラジオボタンを使用していますか? –

+1

...それらのすべてに同じID *を渡してはいけません(しかし、それらが同じ名前を持っていることを確認してください)。* – adeneo

+0

JQuery検証プラグインを使用します。https://jqueryvalidation.org/ – Suraj

答えて

2

このチェックボックスではなくラジオボタンを使用できます。

がここにサンプル

Use Radio Instead of CheckBox

それとも、チェックボックスを使用する必要がある場合は、これを行う参照してください。

$('input.example').on('change', function() { 
    $('input.example').not(this).prop('checked', false); 
}); 
0

私はラジオ・ボタンを使用することになり、しかし私はここにあるあなたの状況を知りませんjQueryを使用したソリューションcheckedのすべてのチェックボックスを選択し、その配列の長さが1より大きいかどうかを確認します。ここに必要なjavascriptコードとそれを見たい場合はjsbinです。

http://jsbin.com/qakuzajaza/edit?js,output

$("#submitbutton").click(function() { 

    var count = $("input[type=checkbox]:checked").length; 
    if (count > 1) { 
    alert("Only 1 can be selected"); 
    } else { 
    // submit data 
    } 

}); 
+0

ありがとうJames ..それは働いた –

0
1. Try this, it will not allow you to check only one checkbox at a time. 

    $(document).ready(function() { 
      $('input[type=checkbox]').click(function() { 
       var chks = document.getElementById('#ckeckboxlistId').getElementsByTagName('INPUT'); 
       for (i = 0; i < chks.length; i++) { 
        chks[i].checked = false; 
       } 
       if (chks.length > 1) 
        $(this)[0].checked = true; 
      }); 
     }); 
0

アプローチは多かれ少なかれ類似しています。試してみてください:

submitForm(); //according to an event you prefer (click some button or anchor , no button over $ .ajaks. 
function submitForm(){ 
    var tag = document.getElementById("tdForm"); 
    var chkbx = $(tag).find("input[type='checkbox']:checked").length; 
    if (chkbx !== 0) { 
     if (chkbx > 1) { 
      alert("more then 1"); 
     }else{ 
      alert("form submited"); //$(tag).submit(); 
     } 
    }else{ 
     if (chkbx === 0) { 
      alert("nothing cecked"); 
     } 
    } 
}; 

テスト済みです。それが役に立てば幸い! 私は、ラジオボタンや以前の検証、フォームを完成させるためのルール上のエラーの傍受ははるかに手頃であると思います。

+0

@adeneoが言ったことを思い出してください。 "id"マストは、同じアプリケーションの周りにユニークなものでなければなりません。したがって、名前やクラスを使うことができます! – Borache