0

データを表形式で表示するために使用しているこのコードがあります

<style>
td{
border:1px solid orange;
}
table{
border:1px solid orange;
}
</style>
<?php
$arr = array(
    'one' => array(
        'sidebarname' => 'first',
        'sidebarid' => 'first1'
    ),
    'two' => array(
        'sidebarname' => 'oneaa',
        'sidebarid' => 'onebb'
    ),
    'three' => array(
        'sidebarname' => 'onecc',
        'sidebarid' => 'onedd'
    ),
    'four' => array(
        'sidebarname' => 'oneee',
        'sidebarid' => 'oneff'
    ),
    'five' => array(
        'sidebarname' => 'onegg',
        'sidebarid' => 'onehh'
    ),
    'six' => array(
        'sidebarname' => 'oneii',
        'sidebarid' => 'onejj'
    )
);
echo '<table>';
foreach ($arr as $key => $value) {
echo '<tr>'.'<td>'."<input type='text' value=$key />".'</td>';

foreach ($value as $keyed=> $newvalue) 
echo '<td>'."<input type='text' value=$newvalue />".'</td>';   
}

echo '</tr></table>';

?>

各配列のメインキーと、1番目と2番目の配列の値を表示しています。たとえば

'five' => array(
            'sidebarname' => 'onegg',
            'sidebarid' => 'onehh'
        ),

私は5つの値sidebarnameとの値を表示していますsidebarid。これは私がhtmlで期待していることです。

http://jsfiddle.net/83hNB/

foreachを使用しsidebaridて、入力テキストの代わりにテキストエリアとして表示するにはどうすればよいですか。

4

3 に答える 3

2

2番目のループを削除し、各キーの最初の値を入力として、sencond値をテキスト領域として表示する必要があります。

あなたのコードは私が試したように見えるはずです、そしてそれはあなたが必要とするものに従って出力します。

 <style>
 td{
 border:1px solid orange;
 }
 table{
  border:1px solid orange;
 }
 </style>
<?php
$arr = array(
'one' => array(
    'sidebarname' => 'first',
    'sidebarid' => 'first1'
),
'two' => array(
    'sidebarname' => 'oneaa',
    'sidebarid' => 'onebb'
),
'three' => array(
    'sidebarname' => 'onecc',
    'sidebarid' => 'onedd'
),
'four' => array(
    'sidebarname' => 'oneee',
    'sidebarid' => 'oneff'
),
'five' => array(
    'sidebarname' => 'onegg',
    'sidebarid' => 'onehh'
),
'six' => array(
    'sidebarname' => 'oneii',
    'sidebarid' => 'onejj'
)
);

echo '<table>';
  foreach ($arr as $key => $value) {
  echo "<tr><td><input type='text' value='".$key."' /></td>";
  echo "<td><input type='text' value='".$value['sidebarname']."' /></td>";   
  echo "<td><textarea>".$value['sidebarid']."</textarea></td>"; 
}
echo '</tr></table>';


?> 

それが役立つことを願っています

于 2012-09-10T09:18:44.570 に答える
1

foreachすでにキーを知っているので、2番目を削除する必要があります。

echo '<table>';
foreach ($arr as $key => $value) {
    echo "<tr><td><input type='text' value='".$key."' /></td>";
    echo "<td><input type='text' value='".$value['sidebarname']."' /></td>";   
    echo "<td><textarea>".$value['sidebarid']."</textarea></td>"; 
}
echo '</tr></table>';
于 2012-09-10T09:11:52.967 に答える
1

内部ループを次のように変更します。

<?php
foreach ($value as $keyed=> $newvalue) {
    if ($keyed === 'sidebarid' ) {
        echo '<td><textarea>'.htmlspecialchars($newvalue).'</textarea></td>';   
    } else {
        echo '<td><input type="text" value="'.htmlspecialchars($newvalue).'" /></td>';   
    }
}
?>

htmlspecialchars()属性のと「」に注意してくださいvalue=""。ユーザーデータをHTMLに出力する場合、どちらも非常に重要です。

于 2012-09-10T09:17:17.940 に答える