一个输入没有发布PHP / MSSQL

时间:2014-03-19 02:43:27

标签: php sql-server forms

尝试使用此页面更新MSSQL表。我的隐藏字段名为hdnLine(第2行到最后一行代码)不会在提交时发布,尽管它在提交表单之前填充了一个值。我让页面正常工作,突然间我不断得到"注意:未定义的索引:第11行"中的C:\ inetpub \ wwwroot \ clientadmin \ agent-edit.php中的hdnLine;当我尝试提交时。我一整天都在试图调试等等,并且没有运气。我假设它的语法错误但不能解决它。任何帮助都将很高兴。代码全部低于减去几个包括数据库连接。我将尽我所能帮助回答有关的任何问题。

<?php
if($_GET["Action"]=="Save"){

    for($i=1;$i<=$_POST["hdnLine"];$i++)
    {
        $strSQL = "UPDATE RENTAGNT SET ";
        $strSQL .="SPIFF = '".$_POST["txtSPIFF$i"]."' ";
        $strSQL .=",PROMO = '".$_POST["txtPROMO$i"]."' ";
        $strSQL .=",SPIFFVAL = '".$_POST["txtSPIFFVAL$i"]."' ";
        $strSQL .=",AGNTLVL = '".$_POST["txtAGNTLVL$i"]."' ";
        $strSQL .=",SPIFFDAYS = '".$_POST["txtSPIFFDAYS$i"]."' ";
        $strSQL .=",MASTAGNTID = '".$_POST["txtMASTAGNTID$i"]."' ";
        $strSQL .="WHERE RENTAGNTID = '".$_POST["hdnRENTAGNTID$i"]."' ";
            $stmt = $conn->query($strSQL);
    }
    //exit();
}

$strSQL="SELECT RENTAGNTID, RENTAGNT.AGENTCODE, NAME, AGNTLVL,SPIFF, SPIFFVAL, PROMO, SPIFFDAYS,INACTIVE, MASTAGNTID FROM RENTAGNT WHERE INACTIVE='0' GROUP BY MASTAGNTID, RENTAGNT.AGENTCODE, RENTAGNT.NAME, RENTAGNTID, SPIFF, SPIFFVAL, SPIFFDAYS, AGNTLVL, INACTIVE, PROMO";

            $stmt = $conn->query($strSQL); 
?>  

       <form name="frmMain" method="POST" action="?Action=Save" >

<table id="res-list-table" class="tablesorter" width="90%" border="1" background="#fff">
 <thead> <tr>
    <th width="10%"> <div align="center">Rental Agent ID</div></th>
    <th width="20%"> <div align="center">Agent Code </div></th>
    <th width="35%"> <div align="center">Name </div></th>
    <th width="5%"> <div align="center">1 Free</div></th>
    <th width="5%"> <div align="center">Spiff Yes/No</div></th>
    <th width="5%"> <div align="center">Spiff Amount </div></th>
    <th width="5%"> <div align="center">Days Req. <br/> for Spiff</div></th>
    <th width="5%"> <div align="center">Master Agent</div></th>
    <th width="5%"> <div align="center">Agent Level</div></th>
  </tr>
  </thead><tbody>


<?php
$i = 1;
    while ($row = $stmt->fetch( PDO::FETCH_ASSOC ) ){
    $i++;
?>

  <tr>
    <td><div align="center">
    <?php echo $row["RENTAGNTID"]; ?>
    </div></td>
        <td><div align="center">
    <?php echo $row["AGENTCODE"]; ?>
    </div></td>
    <td><div align="center">
    <?php echo $row["NAME"]; ?>
    </div></td>  

    <td>

        <input type="hidden" name="hdnRENTAGNTID<?=$i;?>" size="6" value="<?=$row["RENTAGNTID"];?>"/>

    <select name="txtPROMO<?=$i;?>">    
<option value="0" <?php if($row["PROMO"]=="0") { echo "selected='selected'"; } ?> >No</option>
<option value="1" <?php if($row["PROMO"]=="1") { echo "selected='selected'"; } ?> >Yes</option>

</select></td>
<td>
    <select name="txtSPIFF<?=$i;?>">    
<option value="0" <?php if($row["SPIFF"]=="0") { echo "selected='selected'"; } ?> >No</option>
<option value="1" <?php if($row["SPIFF"]=="1") { echo "selected='selected'"; }?> >Yes</option>
</select></td>


    <td><input type="text" name="txtSPIFFVAL<?=$i;?>" size="5" style="width:75px;" value="<?=$row["SPIFFVAL"];?>" /></td>
    <td><input type="text" name="txtSPIFFDAYS<?=$i;?>" size="5" style="width:75px;" value="<?=$row["SPIFFDAYS"];?>" /></td>
    <td><input type="text" name="txtMASTAGNTID<?=$i;?>" size="5" style="width:75px;" value="<?=$row["MASTAGNTID"];?>" /></td>
<td>
    <select name="txtAGNTLVL<?=$i;?>">    
<option value="1" <?php if($row["AGNTLVL"]==1) { echo "selected='selected'"; }?> >Agent</option>
<option value="2" <?php if($row["AGNTLVL"]==2) { echo "selected='selected'"; }?> >Master Agent</option>
<option value="3" <?php if($row["AGNTLVL"]==3) { echo "selected='selected'"; }?> >Admin</option>
</select>

</td>

  </tr>

<?php
}

?>
</tbody>
</table>
    <input type="submit" name="submit" value="submit1" />
    <input type="hidden" name="hdnLine" value="<?=$i;?>"/>

  </form>

1 个答案:

答案 0 :(得分:3)

似乎用于为<input type="hidden" name="hdnLine" value="<?=$i;?>"/>分配值的短标记。你的php.ini中是short_open_tag = On吗? 如果没有更改为on

或者

<?=?><?php=?>

的整个代码中进行更改