【问题标题】:PHP looping, incrementing variable namesPHP循环,递增变量名
【发布时间】:2015-03-16 03:22:29
【问题描述】:

我必须创建一个包含 10 列和 15 行的“收据”表。我在第 1 行所做的基本上是我在第 15 行之前必须做的(而且我已经有很长的代码块了!)。 我可以简单地重做代码十五次,但我想知道是否可以循环,如果可以,我该怎么做。

我希望我的整个代码重复 15 次,文本输入 RECEIPTDATA1 和按钮 SAVEBUTTON1 也递增(即在下一个循环中变为 RECEIPTDATA2 和 SAVEBUTTON2... RECEIPTDATA3 和 SAVEBUTTON3 下一个...直到 RECEIPTDATA15 和 SAVEBUTTON15 )

我在学习 php 方面还是个新手。我希望向你学习。提前致谢。

//验证部分代码

<?php
if(isset($_POST['SAVEBUTTON1'])){
   $sdp = array();

       function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;}

  if     ($_SERVER["REQUEST_METHOD"]=="POST") {
    if(empty($_POST["RECEIPTDATA1"]))
            {$sdp[0]="*";}
    else
            { $sdp[0] =     test_input($_POST["RECEIPTDATA1"]); }
?>

//接口部分代码

<?php
if ($editrec01=="1") {
?>

<form method="post" action="<?php echo 'http://localhost:90/spcs/doregreq.php?id='.$row['formdata'].';'?>">

<tr><td>

<input type="text" class="shwt" name="RECEIPTDATA1" value="<?php echo (isset($_POST["RECEIPTDATA1"]) ? $_POST["RECEIPTDATA1"] : '');?>" placeholder="">

<span class="error"><?php if(isset($_POST['SAVEBUTTON1'])){echo strpbrk("$sdp[0]","*");}?></span>

</td>

<td>
<button type="submit" class="btnclk" name="SAVEBUTTON1">Save</button>
<button type="submit" class="btnclk" name="cancel">Close</button>

</td></tr>

</form>

<?php
}
?>

【问题讨论】:

  • 你想要的输出是什么,你复制了哪些行 15 次?
  • 我需要将我发布的整个代码重复 15 次,同时变量(文本输入和按钮名称)也会递增。 (即 orno1、datd1、amtd1、datp1、amtp1 等...变成 orno2、datd2、amtp2 等,直到 orno15。)

标签: php html loops variables


【解决方案1】:

这是一种循环您的 td 的方法。注意 $_POST 数组是存根的。满足您的需求:

$aEntry1 = array();
$aEntry1[ 'rmrx1' ] = 1;
$aEntry1[ 'actn1' ] = 1;
$aEntry1[ 'random1' ] = 'abc';
$aEntry1[ 'random2' ] = 'defg';

$aEntry2 = array();
$aEntry2[ 'rmrx1' ] = 2;
$aEntry2[ 'actn1' ] = 2;
$aEntry2[ 'random1' ] = 'defaga';
$aEntry2[ 'random2' ] = 'zyzx';

$_POST[] = $aEntry1;
$_POST[] = $aEntry2;

$iCountData = count( $_POST );
for( $i = 0; $i < $iCountData; ++$i )
{
    $sEntry  = '';
    $sEntry .= '<td>';
    $sEntry .= '<input type="text" class="shwt" name="';
    $sEntry .= $_POST[ $i ][ 'rmrx1' ];
    $sEntry .= '" value="';
    $sEntry .= ( empty( $_POST[ $i ][ 'rmrx1' ] ) ? '' : $_POST[ $i ][ 'rmrx1' ] );
    $sEntry .= '" placeholder="';
    $sEntry .= 'Some placeholder? Or loop data: ';
    $sEntry .= $_POST[ $i ][ 'random1' ];
    $sEntry .= '">';
    $sEntry .= '<span class="error">';
    $sEntry .= ( empty( $_POST[ $i ][ 'actn1' ] ) ? '' : $_POST[ $i ][ 'actn1' ] ); // Or strpbrk("$sdp[7]","*");
    $sEntry .= '</span>';
    $sEntry .= '</td>';
    echo $sEntry;
}

【讨论】:

  • 谢谢,但我有点期待我会做一些循环整个事情的事情,其中​​包括一些代码,如 RECEIPTDATA.(increment) ?
猜你喜欢
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2020-02-10
  • 2016-04-14
  • 1970-01-01
  • 2021-09-06
相关资源
最近更新 更多