0

テーブルの構造を保持する変数があります。テーブル内にphpコードを追加したいと思います。コードステートメントを変数に追加してから、テーブル内の変数データをフェッチしようとしましたが、不可能だと思います。正しい方法は何ですか。

$table='<table border="1" cellspacing="0" cellpadding="0"><tr>
        <td width="638" valign="top">**ADD CODE HERE**</td></tr>
        </table>';
echo $table;

これが私が列の中に追加したいコードです:

if($_SESSION['Mmsg']['Mreg-err'])
    {
        echo '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';
        unset($_SESSION['Mmsg']['Mreg-err']);
    }       
if($_SESSION['Mmsg']['Mreg-success'])
    {
        echo '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
        unset($_SESSION['Mmsg']['Mreg-success']);
    }

$notification内にコードを追加してから追加してみました

$notification='if($_SESSION['Mmsg']['Mreg-err'])
    {
    echo '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';
        unset($_SESSION['Mmsg']['Mreg-err']);
    }       
    if($_SESSION['Mmsg']['Mreg-success'])
        {
        echo '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
        unset($_SESSION['Mmsg']['Mreg-success']);
        }';

'。$notification。'

次のようなテーブルの内部:

$table='<table border="1" cellspacing="0" cellpadding="0"><tr>
            <td width="638" valign="top">' . $notification . '</td></tr>
            </table>';
echo $table;

しかし、それは不可能です、これを達成する方法はありますか?私は初心者です

4

5 に答える 5

3

EDITはあなたの未設定を追加しました...

if($_SESSION['Mmsg']['Mreg-err'])
    $notification = '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';
if($_SESSION['Mmsg']['Mreg-success'])
    $notification = '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';

unset($_SESSION['Mmsg']['Mreg-err']);
unset($_SESSION['Mmsg']['Mreg-success']);

$table='<table border="1" cellspacing="0" cellpadding="0"><tr>
        <td width="638" valign="top">' . $notification . '</td></tr>
        </table>';
echo $table;
于 2012-04-12T15:47:00.527 に答える
1

必要なコンテンツを $notification 変数に入れてみませんか?

   var $notification=""; // is 'var' idiomatic PHP? Not used it much lately.
   if($_SESSION['Mmsg']['Mreg-err'])
     {
       $notification= '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';  
       unset($_SESSION['Mmsg']['Mreg-err']);     
     }
  if($_SESSION['Mmsg']['Mreg-success'])
     {
        $notification = $notification . '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
         unset($_SESSION['Mmsg']['Mreg-success']);
   } 

  $table='<table border="1" cellspacing="0" cellpadding="0"><tr>             <td width="638" valign="top">' . $notification . '</td></tr>             </table>';     
  echo $table; 

ただし、これについて私には奇妙に思えることがいくつかあります。

まず、なぜエラーまたは成功メッセージ用に別のセッション変数があるのでしょうか? なぜ持っていないの$_SESSION['Mmsg']['Mreg-outcome']ですか?そうすれば、そのように切り替える必要はありません。

echoまた、テーブルに行く必要がありますか?$notification変数をページで使用できるようにしてから、ページで次のようにテーブルを実行してみませんか。

<table><tr><td>$notification</td></tr></table>

最後に、そのテーブルを表形式のデータの表示以外には使用しない方がよいでしょう。そうしないと、子猫が泣くでしょう。ページの書式設定に使用することを計画しているように見えます。

于 2012-04-12T15:42:30.960 に答える
1
<?php
    // snipped code
    $table='<table border="1" cellspacing="0" cellpadding="0"><tr>
           <td width="638" valign="top">' . $notification . '</td></tr>
           </table>'
    echo $table;
    // snipped code
?>

これは次のように書き直すことができます。

<?php
    // snipped code
?>
<table border="1" cellspacing="0" cellpadding="0">
    <tr>
        <td width="638" valign="top"><?=$notification?></td>
    </tr>
</table>
<?php
    // snipped code
?>

はるかにきれいですよね?

ステートメントには、if従うのがはるかに簡単な代替構文もあります。

<?php
// snipped code
if($_SESSION['Mmsg']['Mreg-err'])
{
echo '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';
    unset($_SESSION['Mmsg']['Mreg-err']);
}       
if($_SESSION['Mmsg']['Mreg-success'])
    {
    echo '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
    unset($_SESSION['Mmsg']['Mreg-success']);
    }
// snipped code
?>

これは次のように書き換えることができます。

<?php
// snipped code
?>

<?php if($_SESSION['Mmsg']['Mreg-err']): ?>
    <div class="err"><?=$_SESSION['Mmsg']['Mreg-err']?></div>
    <?php unset($_SESSION['Mmsg']['Mreg-err']); ?>
<?php endif; ?>
<?php if($_SESSION['Mmsg']['Mreg-success']): ?>
    <div class="success"><?=$_SESSION['Mmsg']['Mreg-success']?></div>
    <?php unset($_SESSION['Mmsg']['Mreg-success']); ?>
<?php endif; ?>

<?php
// snipped code
?>

これで、エラーが発生した場合でも、デバッグとフォローがはるかに簡単になります。

于 2012-04-12T15:47:13.567 に答える
0

通知変数に値を適切に割り当てていないというだけで、あなたがしていることは完全に正しいです。これで動作するはずです。

 if($_SESSION['Mmsg']['Mreg-err'])
 {
   $notification= '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';  
   unset($_SESSION['Mmsg']['Mreg-err']);     
 }
if($_SESSION['Mmsg']['Mreg-success'])
 {
    $notification = $notification . '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
     unset($_SESSION['Mmsg']['Mreg-success']);
 } 

$table='<table border="1" cellspacing="0" cellpadding="0"><tr><td width="638" valign="top">' . $notification . '</td></tr></table>';     
echo $table; 
于 2012-04-12T15:58:49.720 に答える
0

あなたの質問は明確ではありません。私はあなたの問題を推測しようとしています、これを試してください:

$table='<table border="1" cellspacing="0" cellpadding="0"><tr>
        <td width="638" valign="top">' . htmlentities($notification) . '</td></tr>
        </table>';
echo $table;

これが機能するかどうかを確認します

于 2012-04-12T16:08:12.803 に答える