代码如下:<?php
function  putin($email,$agent_email, $hardwareid, $invoice) {
global $adminmail,$nukeurl,$bgcolor2,$bgcolor3,$currentlang;
  include("header.php"); ?>
<script language="JavaScript"> 
<!-- 
function Checker() 

_up_up.items.value = "";  
if ( !_up_up.item.length ) // 只有一个复选框,form1.item.length = undefined 
{  
alert('aaa');
if ( _up_up.item.checked ) 
{
_up_up.items.value = _up_up.item.value + " " + _up_up.product_id.value + " "; 
}

else 
{
alert('a');
for ( i = 0 ; i < _up_up.item.length ; i++ ) 

alert('abcd');
if ( _up_up.item(i).checked ) // 复选框中有选中的框 


_up_up.items.value += _up_up.item(i).value + " " + _up_up.product_id(i).value + " "; 
alert _up_up.items.value;
alert('abc');

}
}return true; 

--> 
</script> 
<?php
//$price4g=200;
//$price3g=150;
$price2g=100;
$price1g=50;OpenTable(); echo "<form name=\"_up_up\" action=\"modules.php?name=upgrade&op=selectitem\" method=\"post\">";
      $sql = "SELECT * FROM invoice_items WHERE invoice_id='$invoice' and email='$email' and edition='$whichedition'";
   $result = $db->sql_query($sql);
//echo $result;
    $row=$db->sql_fetchrow($result);
      echo "<br><table class=\"tableborder\" align=\"center\" cellpadding=\"4\" cellspacing=\"1\" width=\"98%\"><tbody>"
            ."<tr><td colspan=\"5\" class=\"style6\"><div align=\"center\" class=\"style6\"><strong>$email,"._BUYINFO."</strong></div></td></tr>"
      ."<tr bgcolor='$bgcolor2'><th>"._INVOICENUMBER."</th><th>"._HARDWAREID."</th><th>"._PRODUCTNAME."</th><th>"._UNITPRICE."</th><th>"._UPGRADEPID."</th><th>"._SELECTUPGRADE."</th></tr>";
do{
         echo "<tr bgcolor='$bgcolor3'>";
         echo "<td class=\"altbg1\" align=\"center\">$row[invoice_id]</td><td class=\"altbg1\" align=\"center\">$row[hardwareid]</td>";

 $ss1=$row[product_edition];
 $ss2=$row[product_id];

 $ss=$ss1.$ss2;
 

 switch($ss)
 {
     case 'ProfessionalB64':
      echo "<td class=\"altbg1\">"._PB64."</td><td class=\"altbg1\">$price2g"._RMB."</td><td class=\"altbg1\">"._HIGHESTHD."</td><td class=\"altbg1\"></td>";      break;
     case 'ProfessionalB32':
      echo "<td class=\"altbg1\">"._PB32."</td><td class=\"altbg1\">$price1g"._RMB."</td><td class=\"altbg1\"><select name=\"upgrade_product\"><option value=\"PB64\">"._PB64."</option></select></td><td class=\"altbg1\"><input type=\"checkbox\"  name=\"item\"  value=\"$row[id]\"></td>";     break;
     case 'StandardB64':
      echo "<td class=\"altbg1\">"._SB64."</td><td class=\"altbg1\">$price2g"._RMB."</td><td class=\"altbg1\"><select name=\"upgrade_product\"><option value=\"PB64\">"._PB64."</option></select></td><td class=\"altbg1\"><input type=\"checkbox\"  name=\"item\"  value=\"$row[id]\"></td>";     break;
     case 'StandardB32':
       echo "<td class=\"altbg1\">"._SB32."</td><td class=\"altbg1\">$price1g"._RMB."</td><td class=\"altbg1\"><select name=\"upgrade_product\"><option value=\"SB64\">"._SB64."</option><option value=\"PB32\">"._PB32."</option><option value=\"PB64\">"._PB64."</option></select></td><td class=\"altbg1\"><input type=\"checkbox\"  name=\"item\"  value=\"$row[id]\"></td>";     break;
 default:     break;
 }


       echo "</tr>";

       } while ($row = $db->sql_fetchrow($result));
     echo "</tbody></table><br/><br/><br/>";              
        echo "<tr><td valign=\"top\"><br/><table width=\"98%\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" bordercolor=\"#E2E7ED\" class=\"tableborder\">"
 ."<input type=\"hidden\" name=\"items\" value=\"\">"
 ."<input type=\"hidden\" name=\"email\" value=\"$email\">"
 ."<input type=\"hidden\" name=\"agent_email\" value=\"$agent_email\">"
 ."<input type=\"hidden\" name=\"invoice\" value=\"$invoice\">"
// ."<input type=\"hidden\" name=\"upgrade_product\" value=\"$upgrade_product\">"
         ."<tbody><tr><td width=\"50%\" height=\"22\" ><div align=\"center\"><input value=\""._FINISH."\" name=\"finish1\" onclick=\"return Checker();\" type=\"submit\" /></div></td>"
         ."</tr></tbody></table></form><br/></td></tr>";
CloseTable(); 
        include("footer.php");
}这里"><input value=\""._FINISH."\" name=\"finish1\" onclick=\"return Checker();\" type=\"submit\" />将复选框的值传到数组中,javascript没有执行,直接跳转到第二个页面,各位高手,烦请帮忙!

解决方案 »

  1.   

    检测时没有return false,表单当然会提交了
      

  2.   

    JS函数里面检测到不符合的情况时,应该有return false语句返回,才能让表单不提交
      

  3.   

    改为如下?
    function Checker() 

    _up_up.items.value = "";  
    if ( !_up_up.item.length ) // 只有一个复选框,form1.item.length = undefined 
    {  
    alert('aaa');
    if ( _up_up.item.checked ) 
    {
    _up_up.items.value = _up_up.item.value + " " + _up_up.product_id.value + " "; 
    }

    else 
    {
    alert('a');
    for ( i = 0 ; i < _up_up.item.length ; i++ ) 

    alert('abcd');
    if ( _up_up.item(i).checked ) // 复选框中有选中的框 


    _up_up.items.value += _up_up.item(i).value + " " + _up_up.product_id(i).value + " "; 
    alert _up_up.items.value;
    alert('abc');

    }
    }return false; 

    还是一样的,所有的打印语句都没有打印结果
      

  4.   

    echo "<form name=\"_up_up\" action=\"modules.php?name=upgrade&op=selectitem\" method=\"post\" onsubmit=\"Checker()\">";  这样试试看。
      

  5.   

    贴html代码出来吧,这样子看得眼花
      

  6.   

    按5楼的办法,可以执行一次,再测试数据,就没有打印信息了。[Quote=引用 5 楼 jordan102 的回复:]switch($op) {    case "putin":
    putin($email,$agent_email, $hardwareid, $invoice);
    break;    case "referorder":
        referorder($email, $agent_email,$def, $productedition,$payway,$aaaa);
    break;  case "selectitem":
       $items=$_REQUEST["item"];  //取隐藏域的值
    //echo $items[0];
        $email=$_REQUEST["email"];
    //echo $email;
        $agent_email=$_REQUEST["agent_email"];
        $invoice=$_REQUEST["invoice"];
    $upgrade_product=$_REQUEST["upgrade_product"];

    selectitem($items, $email,$agent_email, $invoice,$upgrade_product);
    break;
          
       
        default:
        
    include("header.php");
    OpenTable();

    通过如上方式:
    case "selectitem":
       $items=$_REQUEST["item"];  //取隐藏域的值
    //echo $items[0];
        $email=$_REQUEST["email"];
    //echo $email;
        $agent_email=$_REQUEST["agent_email"];
        $invoice=$_REQUEST["invoice"];
    $upgrade_product=$_REQUEST["upgrade_product"];

    selectitem($items, $email,$agent_email, $invoice,$upgrade_product);
    break;
    其中:item里面的值,这样取是不是有问题???
      

  7.   

    如果通过javascript中得到准确的items 的值,那么我怎么传回到页面函数selectitem($items, $email,$agent_email, $invoice,$upgrade_product);
     中?