1 js调用公式,实现定额计算,并将其保存在数组里或者json字符串,或者xml串,总之定额信息和下料尺寸和序号要对应起来.
2 ajax将上面的信息传到后台,后台程序将需要的信息更新到数据库.
3 前台将定额值显示出来.

解决方案 »

  1.   

    感觉js不用,直接将表单中需要的信息传到后台处理完后存入数据库,然后返回相应的定额值等信息,如果要无刷新显示,那就用ajax
      

  2.   

       <table border="1" bgcolor="#EBEBEB" bordercolor="#888888" cellspacing="2" cellpadding="2">
       <tr bordercolor="C6E2FF">
        
    <th width = 50>序号</th>
        <th width = 100>领料单位</th>
        
    <th width = 100>新物料码</th>
    <th width = 100>用友码</th>
    <th width = 100>转换率</td> <th width = 100>计划价</td>
    <th width = 100>设计用量</td>
    <th width = 75>单项成本</td>
       
        <th width = 150>属装图号</td>
    <th width = 250>图号</td>
    <th width = 250>图名</td>
        <th width = 50>键号</td>
        
    <th width = 250>材料</td>
    <th width = 150>定额</td>
        <th width = 220>下料尺寸</td>
        <th width = 50>利用率</td>
    <th width = 100>设计单重</td>
    <th width = 100>数量</td>
    <th width = 200>备注</td>
        <th width = 50>计量单位</td>
    <th width = 150>工艺分工</td>
        <th width = 150>所属产品</td>
        <th width = 150>自制/外购</td>
        
        <th width = 50>G1</td>
        <th width = 50>G2</td>
        <th width = 50>G3</td>
        <th width = 50>G4</td>
        <th width = 50>G5</td>
        <th width = 50>G6</td>
        <th width = 50>G7</td>
        <th width = 50>G8</td>
        <th width = 50>G9</td>
        
    </tr>
    <form action=".php" method="post" target="middle">
    <?php


    $total = 0;
    $i = 0; 

    while($detail[11][$i])//判断是否还有孩子节点
    {
      //为奇偶行赋不同的颜色
    if($i%2 == 1)
    {
    ?><tr BGCOLOR="#DBDBDB"><?php //BGCOLOR="#DBDBDB"
    }
    else
    {
    ?><tr BGCOLOR="#EBEBEB"><?php //BGCOLOR="#B7B7B7"
    }

       echo "<td align=center NOWRAP>";//序号
    echo $i+1;//序号是自动加1
    echo "</td>";

    echo "<td  NOWRAP>";//领料单位
    if(!empty($detail[10][$i]))//$detail[10][$i]为工艺分工
    {
        $g = explode("-",$detail[10][$i]);    
    $j = substr_count($detail[1][$i],"TSKZ");//计算子串在字符串中出现的次数

    if($j=="0")//上车部分
    {
        if($g[0]=="04"){
       echo "";
      
    }else{
       echo $g[1];
       
    }
    }else{//下车部分
       if($g[0]=="04"){
          echo $g[1];
       }elseif($g[1]=="04"){
          echo $g[2];
       }else{
          echo $g[1];
       }
    }
    }
    echo "</td>";

            //以下是根据costdetail.php这个文件中的detail[][]来确定输出顺序
    echo "<td align=center NOWRAP>";//新物料码
    echo $detail[13][$i];
    echo "</td>";

    echo "<td align=center NOWRAP>";//用友码
    echo $detail[12][$i];
    echo "</td>";

    echo "<td align=center NOWRAP>";//转换率
    echo $detail[15][$i];
    echo "</td>";

    echo "<td  NOWRAP>";//计划价(用友单位)
    if($detail[17][$i]){
    echo $detail[17][$i]."/".$detail[18][$i];}
    echo "</td>";

    if($detail[14][$i] == "kg"){//结算单位,如果是kg
    $detail[20][$i] = $detail[6][$i]*$detail[8][$i]."&nbsp;".$detail[14][$i];
    $detail[19][$i] = $detail[6][$i]/$detail[15][$i]*$detail[17][$i];
    }

    elseif($detail[14][$i] == "pc"){
    $detail[20][$i] = $detail[8][$i]."&nbsp;".$detail[14][$i];
    $detail[19][$i] = $detail[8][$i]/$detail[15][$i]*$detail[17][$i];
    }

    elseif($detail[14][$i] == "mm3"){
    $vol = explode("x",$detail[2][$i]);    
    $vol1 = explode("=",$vol[0]);//
    $vol[0] = $vol1[1];//第一数量纲
    $vol2 = explode("mm3",$vol[2]);
    $vol[2] = $vol2[0];//第三数量岗
    $detail[20][$i] = $vol[0]*$vol[1]*$vol[2]*$detail[8][$i]."&nbsp;".$detail[14][$i];
    $detail[19][$i] = ($vol[0]*$vol[1]*$vol[2])/$detail[15][$i]*$detail[17][$i];
    }

    elseif($detail[14][$i] == "mm2"){
    //$vol = explode("=",$detail[2][$i]);
    //$detail[20][$i] = $vol[1].$detail[14][$i];//净用量
    //$detail[19][$i] = $detail[8][$i]/$detail[15][$i]*$detail[17][$i];
    }

    elseif($detail[14][$i] == "mm"){
    //$detail[20][$i] = $detail[2][$i].$detail[14][$i];//净用量
    //$detail[19][$i] = $detail[8][$i]/$detail[15][$i]*$detail[17][$i];
    }

    elseif($detail[14][$i] == "m"){
    $vol = explode("=",$detail[2][$i]);
    $vol1 = explode("m",$vol[1]);
    $detail[20][$i] = $vol1[0]*$detail[8][$i]."&nbsp;".$detail[14][$i];//净用量
    $detail[19][$i] = $vol1[0]/$detail[15][$i]*$detail[17][$i];
    }

    echo "<td  NOWRAP>";//设计用量
    echo $detail[20][$i];
    echo "</td>";

    echo "<td  NOWRAP>";//单项成本
    if($detail[0][$i]){//物料编码存在
    echo round($detail[19][$i],3);
    $total = $total + round($detail[19][$i],3);
    }
    echo "</td>";

    echo "<td NOWRAP>";//属装图号
    echo $detail[3][$i];
    echo "</td>";

    echo "<td NOWRAP>";//图号
    //echo $detail[11][$i].$detail[1][$i];
    echo $detail[1][$i];
    echo "</td>";

    echo "<td NOWRAP>";//图名
    echo $detail[2][$i];
    echo "</td>";

    echo "<td NOWARP>";//键号
    echo $detail[4][$i];
    echo "</td>";


    echo "<td NOWRAP>";//材料
    echo $detail[5][$i];
    echo "</td>";

    //echo "<td NOWRAP>";//定额

    //echo "</td>";

    $single = $detail[13][$i]{0};//自制/外购/标准件

            ?>
            
            <td nowrap>
            <input type="text" 
            <?php
    //如果是自制件的话,就把定额、下料尺寸、利用率框颜色突出设置
     //if(empty($detail[22][$i]))
     switch($single){
        case 1: ?>
    style="background:#EECBAD"<?php
    break;
    case 2:
    case 3:
    case 4:
    ?>
    style="background:#B9D3EE"<?php
    break;

            name="dinge" size=15 >
            </td>
            
            <td NOWRAP>
            <input type="text" 
             <?php
               switch($single){
        case 1: ?>
    style="background:#EECBAD"<?php
    break;
    case 2:
    case 3:
    case 4:
    ?>
    style="background:#B9D3EE"<?php
    break;
    default:
        if($i%2 == 1)
    {
    ?>style="background:#DBDBDB"<?php //background:#A0A0A0
    }
    else
    {
    ?>style="background:#EBEBEB"<?php //background:#B7B7B7
    }
        
    }?>        name="xialiao" size=20 >
            </td>

    <td NOWRAP>
            <input type="text" name="liyonglv" size=5 value="<?php 
    if($single!=1){
        echo " ";
      }else{
        echo $detail[22][$i];}
    ?>"
           <?php
               switch($single){
        case 1: ?>
    style="background:#EECBAD"<?php
    break;
    default:
        if($i%2 == 1)
    {
    ?>style="background:#DBDBDB"<?php //background:#A0A0A0
    }
    else
    {
    ?>style="background:#EBEBEB"<?php //background:#B7B7B7
    }
        
    }?>
           <?php /*?> <?php
     if(empty($detail[22][$i]))//按照取材率为空与否来设置颜色
     {
    if($i%2 == 1)
    {
    ?>style="background:#DBDBDB"<?php
    }
    else
    {
    ?>style="background:#EBEBEB"<?php
    }
    }else
    {  ?>
                style="background:#EECBAD" <?php //属于高亮状态
    } ?><?php */?>
            </td>    
            
           <?php 

    echo "<td NOWRAP>";//单重
    echo $detail[6][$i];
    echo "</td>";


    echo "<td NOWRAP>";//数量
    echo $detail[8][$i];
    echo "</td>";

    echo "<td NOWRAP>";//备注
    echo $detail[9][$i];
    echo "</td>";

    echo "<td NOWRAP>";//计量单位
    echo $detail[18][$i];
    echo "</td>";

    echo "<td NOWRAP>";//工艺分工
    echo $detail[10][$i];
    echo "</td>";

    echo "<td  NOWRAP>";//所属产品
    echo $detail[21][$i];
    echo "</td>";

       //$single = $detail[13][$i]{0};//自制/外购/标准件
    echo "<td align=center NOWRAP>";
            switch($single){
        case 1:
    echo "自制";
    break;
    case 2:
    echo "标准";
    break;
    case 3:
    case 4:
    echo "外购";
    break;
    }
    echo "</td>";


    if(!empty($detail[10][$i]))
    {
        $g = explode("-",$detail[10][$i]);    
    foreach($g as $key => $value) 

      echo "<td NOWRAP>";
      echo ${'G'.($key+1)} = $value;
      
      echo "</td>";
    }

    } echo "</tr>";//行

    $i++;
    }

    $total = $total/10000;
    $total = round($total,3);
    //tr代表表格中的行,而td代表在表格中生成一列
    echo "<tr bgcolor=#C6E2FF>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td align=center>总计:</td>";
    echo "<td>".$total."万元</td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "</tr>";

    echo "</table>";//表

    ?>
    <input type="submit" value="录入">
    </form>
      

  3.   


    <?php header("Content-type: text/html; charset=utf-8");?>
    <html><body>
    <form action="csdntest.php?maxi=4">
    <?php for ($i=1;$i<4;$i++)
    {
    ?>
    定额:<input type="text" name="dinger<?php echo $i;?>"/>
    料号:<input type="text" name="liaohao<?php echo $i;?>"/>
    用友吗:<input type="text" name="yongyouma<?php echo $i;?>"/><br>
    <?php }?><input type="submit"/>
    </form>
    </body>
    </html>
      

  4.   


    <?php
    header("Content-type: text/html; charset=utf-8");for ($i=1;$i<$_REQUEST['maxi'];$i++)
    {
    if (strlen(trim($_REQUEST['liaohao'.$i]))>0)
    {
    $_REQUEST['dinger'.$i]=$_REQUEST['yongyouma'.$i].'gongshi';
    }
    }
    echo  "<pre>";
    print_r($_REQUEST);
    ?>
      

  5.   

    我现在想把计算操作完成后,就插入到另外一个表中,但是之前代码形式如下:
    <input type="text" name="yongyou<?php echo $i+1;?>" size="7" value="<?php echo $detail[12][$i];?>" style="background:#DBDBDB>
    这个是实现的用友码字段,是可操作的text文本形式,用$_REQUEST可以得到表格中的内容?
    echo "<td align=center NOWRAP>";//转换率
    echo $detail[15][$i];
    echo "</td>";
    而上面是直接echo出来的结果,仍然可以用这个$_REQUEST来得到表格中的结果吗?并且是不是还需要把这些东西字段定义成为数组的情况(变成上面的情况?)