1

動的に作成されたチェック ボックスの値にアクセスしたいと考えています。

@ $db = mysql_connect("abc", "abc", "");
                            mysql_select_db("abc");

                            $strSQL = "SELECT * FROM student";
                            $rs = mysql_query($strSQL);
                            $num_rows = mysql_num_rows($rs);
                            echo "<i style='color:#fff'> Number of Students = ".$num_rows."</i>";
                            $i=1;
                            while($r = mysql_fetch_array($rs)){

                            echo "<tr>";
                            echo "<td class='promotetabledata'>".$r[7]."</td>";
                            echo "<td class='promotetabledata'>".$r[6]."</td>";
                            echo "<td class='promotetabledata'><input type='checkbox' class='pr'  value='".$r[7]."'/></td>"; /*dynamically created check boxes*/
                            echo "</tr>";
                            $i++;
                }   

結果はpromoteresults divAJAXを使用して表示されます

<form id="promotionform" action="promotestudents.php" method="POST">
            <div id="promoteresults">The results will show up here..!!
            </div>


            <div style=" position:relative; margin-top:10px; padding-left:44%;">  
                <button type="submit" class="button black">Promoted</a>
            </div>
    </form>

昇格したボタンがクリックされたときに、選択したレコードを取得してその値を更新したいと考えています。レコードを更新するには、PHP が必要です。を使用して、Javascript で選択したレコードにアクセスできます。

var selected = document.getElementsByClassName('pr').checked;

しかし、チェックされたレコードを HTML フォームで取得し、その値を PHP で取得するにはどうすればよいですか?

Javascript を使用した AJAX 呼び出し

function getpromotestudents()
{
//alert("hi");

var xmlhttp;
var select1 = document.getElementById('promotefacultyselect1'); 
var facutlyselect = select1.options[select1.selectedIndex].value;


var select2 = document.getElementById('promotedepartmentselect1'); 
var deptselect = select2.options[select2.selectedIndex].value;


var select3 = document.getElementById('promotecourseselect1'); 
var courseselect = select3.options[select3.selectedIndex].value;


var select4 = document.getElementById('promoteyearselect1'); 
var yearselect = select4.options[select4.selectedIndex].value;


var select5 = document.getElementById('promotesemselect1'); 
var semselect = select5.options[select5.selectedIndex].value;


var  the_data = 'faculty='+facutlyselect+' &dept='+deptselect+' &course='+courseselect+' &year='+yearselect+' &sem='+semselect;


if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  /*
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("searchresults").innerHTML=xmlhttp.responseText;
    }
  }*/



  xmlhttp.open("POST", "getpromotestudents.php", true);         // set the request
  xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");            // adds  a header to tell the PHP script to recognize the data as is sent via POST
  xmlhttp.send(the_data);       // calls the send() method with datas as parameter

  // Check request status
 // If the response is received completely, will be transferred to the HTML tag with tagID
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
      document.getElementById("promoteresults").innerHTML = xmlhttp.responseText;
    }
  }
}
4

3 に答える 3

1
 <td class='promotetabledata'><input type='checkbox' name='pr[]'  value='".$r[7]."'/></td>   

これは、すべてのチェックボックスにアクセスし、選択したチェックボックスに対して必要な操作を実行するために最終的に作成した PHP コードです。

<?php
    $checkbox = $_POST['pr'];

    foreach($checkbox as $value){

            if(isset($checkbox)){

            echo '<script>alert("'.$value.'")</script>';
            }
    }
    ?>
于 2013-07-13T02:08:24.003 に答える
0

このように各checkbox nameプロパティを指定します

<input type='checkbox' class='pr'  value='8' name='chk[]'/>

PHPよりも、次のように取得できます

<?php
 $chkbox = $_POST['chk'];

 foreach($chkbox as $a => $b){
    echo $chkbox[$a];
 }
?>
于 2013-07-13T01:14:44.860 に答える