尝试使用此页面更新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>
答案 0 :(得分:3)
似乎用于为<input type="hidden" name="hdnLine" value="<?=$i;?>"/>
分配值的短标记。你的php.ini中是short_open_tag = On
吗?
如果没有更改为on
。
或者
在<?=?>
到<?php=?>