2013-07-13 2 views
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 div с помощью AJAX

<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

на основе AJAX вызова с Javascript

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; 
    } 
    } 
} 
+0

Пожалуйста, покажите нам свой вызов ajax. Вы используете jQuery? – vee

+1

Он не беспокоился бы с getElementsByClassName, если бы он использовал jQuey, я думаю :) – Robert

+0

@vinodadhikary Я использую javascript, у меня есть обновленный вопрос, чтобы показать вам часть AJAX –

ответ

0

Дайте каждому из свойства checkboxname как этот

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

чем в PHP вы можете получить их следующим образом

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

foreach($chkbox as $a => $b){ 
    echo $chkbox[$a]; 
} 
?> 
+0

Thanx за помощь :) –

0

Установите каждый флажок name на pr[], как указано:

echo "<input type='checkbox' class='pr' name='pr[]' value='".$r[7]."'/>"; 

Тогда первый флажок будет на $_POST['pr'][0], второй на $_POST['pr'][1] и так далее.

+0

Вы также можете задать имя 'pr [0]' и т. д., если вам нужно знать точный флажок, который был проверен. – maxton

+0

Я читал, атрибут name устарел в HTML5, и вместо этого предпочтительным является использование id или класса. –

+0

Всегда используйте оба id/name, если вам не все равно, что 6/7/8/9 на следующие 10 лет вперед – Robert

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>'; 
      } 
    } 
    ?> 
Смежные вопросы