2011-05-25 37 views
1

我有兩個頁面,第一頁是index.php我也在其中使用facebox框架。第二頁是addevent.php我試過很多方法來捕獲addevent.php中單個複選框的值,並將它傳遞給index.php。但它沒有顯示價值。那麼我的代碼有什麼問題嗎?我很想念什麼?任何幫助將感激..未定義的值單個複選框JavaScript到另一個頁面

的index.php



echo ">".$check=$_REQUEST['check']; 
echo "check[0]: ".$check[0]; 
&lthead> 
&ltscript src="inc/jquery-1.4.4.min.js" type="text/javascript"></script> 
&ltscript src="inc/facebox.js" type="text/javascript"></script> 

&ltbody> 
&lta href="addevent.php" rel="facebox" &gtlink</a> 
</body> 

addevent.php



&lthead> 
&ltscript src="inc/jquery-1.4.4.min.js" type="text/javascript"></script> 
&ltscript src="inc/facebox.js" type="text/javascript"></script> 
&ltscript language="javascript" type="text/javascript"> 
function AddEventAgenda(){ 

//--- i've tried this method & firebug said:document.eventAgendaForm.checkName[0] is undefined---- 

    var elemLength = document.eventAgendaForm.checkName.length; 
    if (elemLength==undefined) { 
    elemLength=1; 
    if (document.eventAgendaForm.checkName.checked) { 
     // we know the one and only is checked 
     var check = "&check[0]=" + document.eventAgendaForm.checkName[0].value; 
    } 
    } else { 
     for (var i = 0; i&ltelemLength; i++) { 
      if (eventAgendaForm.checkName[i].checked) { 
     var check = "&check["+i+"]=" + document.eventAgendaForm.checkName[i].value + check; 
      } 
     } 
    } 

//--- also this one same firebug said:document.eventAgendaForm.checkName[0] is undefined--- 

    var len = document.eventAgendaForm.checkName.length; 
    if(len == undefined) len = 1; 
    for (i = 0; i < len; i++){ 
    var check = "&check["+i+"]=" + document.eventAgendaForm.checkName[i].value + check; 
    } 


//--- and this one same firebug said:document.eventAgendaForm.checkName[0] is undefined--- 

    var formNodes = document.eventAgendaForm.getElementsByTagName('input'); 
    for (var i=0;i&ltformNodes.length;i++) { 
    /* do something with the name/value/id or checked-state of formNodes[i] */ 
    if(document.eventAgendaForm.checkName[i].checked){ 
    var check = "&check["+i+"]=" + document.eventAgendaForm.checkName[i].value + check; 
    } 
} 

//--- and this one same firebug said:document.eventAgendaForm.checkName[0] is undefined--- 

if (typeof document.eventAgendaForm.checkName.length === 'undefined') { 
    /*then there is just one checkbox with the name 'user' no array*/ 
     if (document.eventAgendaForm.checkName.checked == true) 
          { 
           var check = "&check[0]=" + document.eventAgendaForm.checkName[0].value; 
          } 
    }else{ 
    /*then there is several checkboxs with the name 'user' making an array*/ 
     for(var i = 0, max = document.eventAgendaForm.checkName.length; i < max; i++){ 
      if (document.eventAgendaForm.checkName[i].checked == true) 
          { 
           var check = "&check["+i+"]=" + document.eventAgendaForm.checkName[i].value + check; 
          } 
     } 
    } 

//----------------------------------------------- 
    window.location="index.php?tes=1" + check; // display the result 
    $(document).trigger('close.facebox'); 
} 

</script> 


&ltscript type="text/javascript"> 
// i don't know if these code have connection with checkbox or not? 
     function addLoadEvent(func) { 
      var oldonload = window.onload; 

      if (typeof window.onload != "function") { 
       window.onload = func; 
      } else { 
       window.onload = function() { 
        oldonload(); 
        func(); 
       } 
      } 
     } 

     addLoadEvent(function() { 
      initChecklist(); 
     }); 
     function initChecklist() { 
      if (document.all && document.getElementById) { 
       // Get all unordered lists 
       var lists = document.getElementsByTagName("ul"); 

       for (i = 0; i < lists.length; i++) { 
        var theList = lists[i]; 

        // Only work with those having the class "checklist" 
        if (theList.className.indexOf("checklist") > -1) { 
         var labels = theList.getElementsByTagName("label"); 

         // Assign event handlers to labels within 
         for (var j = 0; j < labels.length; j++) { 
          var theLabel = labels[j]; 
          theLabel.onmouseover = function() { this.className += " hover"; }; 
          theLabel.onmouseout = function() { this.className = this.className.replace(" hover", ""); }; 
         } 
        } 
       } 
      } 
     } 
    </script> 


</head> 

&ltform name="eventAgendaForm" id="eventAgendaForm" > 
&ltul class="checklist cl3"> 
&ltli >&ltlabel for="c1"> 
&ltinput id="checkId" name="checkName" value="1" type="checkbox" > 
</label></li></ul> 
&ltinput class="tombol" type="button" name="Add" value="Add" onclick="AddEventAgenda()" /> 
</form> 

回答

0

爲什麼不使用jQuery,如果您包括jQuery庫?

var checkbox_val=jQuery("#CHECKBOX_ID_HERE").val();//gets you the value regardless if checked or not 
    var checkbox_val=jQuery("#CHECKBOX_ID_HERE").attr("checked"); //returns checked status 

var global_variable=""; //should be initialized outside any function 
jQuery("#FORM_ID_HERE").children(":input[type='checkbox']").each(function(){ 
    if (jQuery(this).attr("checked"))global_variable+="&"+jQuery(this).attr("name")+"="+jQuery(this).val(); 
}); 

這只是一個從,不理想的啓動建議。理想的部分是在你的表單中使用[]。

+0

嗨,Dreaded分號感謝您的幫助。最後,我可以用你的jQuery庫獲得價值。是工作。感謝你們所有人 – theAlex 2011-05-25 07:29:19

相關問題