2011-11-28 71 views
1

我有一個程序,它使用jquery附加一個輸入(type="hidden")到一個html,這樣當我點擊提交按鈕時,它將值傳遞給一個php文件,我可以處理它。但是,看起來隱藏的類型並沒有真正被附加到html中,也沒有被傳遞給php文件。我已經使用method="get"來查看地址欄中的值和print_r以查看正在捕獲的值,但沒有任何值。要檢查我的形式實際上是傳遞一個值,我添加了一個jquery .append()不適用於我的html

<input type="hidden" name="absent[]" value="testing" /> 
在HTML

和價值得到了通過,但在jQuery的的那些都沒有。

這裏是我的文件: 的jQuery:

$(function(){ 
    $("td").click(function(){ 
if($(this).hasClass("on")) 
{ 
    alert("Already marked absent"); 

} 
else 
{ 

    $(this).addClass("on"); 
    var currentCellText = $(this).text(); 
    var temp = $(this).attr('id'); 
    $("#collect").append("<input type='hidden' name='absent[]' value = '" + temp + "'/>" + currentCellText); 
    alert(temp); 

} 
    }); 

$("#clicky").click(function(){ 
    $("td").removeClass("on"); 
    $("#collect").text(''); 
    $("#collect").append("Absentees: <br>") 
    alert(temp); 
}); 
}); 

這裏是HTML的一部分:

<?php 
session_start(); 
include 'connectdb.php'; 
$classID = $_SESSION['csID']; 

$classQry = "SELECT e.csID, c.subjCode, c.section, b.subj_name, e.studentID, CONCAT(s.lname, ', ' , s.fname)name 
FROM ENROLLMENT e, CLASS_SCHEDULE c, STUDENT s, SUBJECT b 
WHERE e.csID = c.csID 
AND c.csID = '" . $classID . "' 
AND c.subjCode = b.subjCode 
AND e.studentID = s.studentID 
ORDER BY e.sort;"; 

$doClassQry = mysql_query($classQry); 

echo "<table id='tableone'>"; 
    while($x = mysql_fetch_array($doClassQry)) 
    { 
     $subject = $x['subj_name']; 
     $subjCode = $x['subjCode']; 
     $section = $x['section']; 
     $studentArr[] = $x['name']; 
     $studentID[] = $x['studentID']; 


    } 
    echo "<thead>"; 
    echo "<tr><th colspan = 7>" . "This is your class: " . $subjCode . " " . $section . " : " . $subject . "</th></tr>"; 
    echo "</thead>"; 
    echo "<tbody>"; 
    echo "<tr>";   
    for($i = 0; $i < mysql_num_rows($doClassQry); $i++) 
    { 
     if($i % 7 == 0) 
     {    
      echo "</tr><tr><td id = '". $studentID[$i] . " '>" . $studentArr[$i] . "</td>";    
     } 
     else 
     { 
      echo "<td id = '". $studentID[$i] . " '>" . $studentArr[$i] . "</td>"; 
     } 

    } 
    echo "</tr>";  
    echo "</tbody>"; 
echo "</table>"; 
?> 

這裏的HTML部分與形式:

<form name="save" action="saveTest.php" method="post"> 
<div id="submitt"> 
    <input type="hidden" name="absent[]" value="testing"/> 
    <input type="submit" value="submit"/> 
</div> 
</form> 

而這裏的php部分處理表單(saveTest.php):

<?php 

$absent = $_POST['absent']; 
//echo "absnt" . $absent[] . "<br>"; 
echo count($absent) . "<br>"; 
//print_r($_POST) . "<br>"; 
?> 

回答

3

是否在表格裏面有id爲collect的元素?它需要。

$("<input type='hidden' name='absent[]' />").val(temp) 
              .appendTo('form[name="save"]'); 
$('#collect').append(currentCellText); 
+0

哇我完全錯過了。 id收集不在表單內。哇塞!真的麼!我一直在爲此工作數小時。非常感謝你指出這一點。對不起,新手jquery用戶在這裏:))))) – user1056998

+0

是的,我用了一個隱藏的元素,因爲當我點擊​​時,元素只會被追加。這樣我就將這些隱藏的元素的id推送到一個數組中,我將在php文件中處理這些數組。我不知道其他方式傳遞數組到PHP以外的使用形式技術。 – user1056998

+0

@ user1056998我看到,增加更多應該也可以。我會更新。 – tvanfosson