1

txtファイルから情報を読み込んで画面に次のような行に出力するphpファイルがあります

1行目[x]
2行目[x]などなど

情報のすべての行の横にチェックボックスを追加しようとしていますが、読み取られる行数に応じてチェックボックスを作成するforループを実行できました。

今、私が立ち往生している最後のことは、ユーザーがチェックボックスをクリックしてから送信ボタンをクリックできるようにしたいということです。これにより、選択した情報が新しいphpファイルに出力されます。

ユーザーが1行目をチェックして送信した場合、開いているphpファイルに「1行目」というテキスト文字列が表示されます。

私はいくつかの調査を行い、issetメソッドを使用して、チェックされているかどうかを確認しましたが、それは機能しましたが、新しいphpファイルにチェックされた情報を読み取る方法がまだわかりません。助けていただければ幸いです。

$filename = "file.txt";

$filepointer = fopen($filename, "r"); //open for read

$myarray = file ($filename);

// get number of elements in array with count
for ($counts = 0; $counts < count($myarray); $counts++)

{ //one line at a time
$aline = $myarray[$counts];

//$par = array();
$par = getvalue($aline);

if ($par[1] <= 200) 
{ 

print "<input type=checkbox name='test'/>"." ".$par[0]." "; 
print $par[1]." ";
print $par[2]." ";
print $par[3]." ";

}

}
4

1 に答える 1

2

チェックされた行を識別する配列を作成したいと思うかもしれません。チェックボックスの入力に名前を付けるには、配列を使用する必要があります。[]入力名に追加することで、PHPと非常によく似た構文でこれを行うことができます。この特定のケースでは、配列キーに明示的にインデックスを付けることもできます。これは、のように行うことができます[index]。これをコードで示す方が簡単です。

file1.php(修正済み

<?php

$filename = "file.txt";

// file() does not need a file pointer
//$filepointer = fopen($filename, "r"); //open for read

$myarray = file($filename);

print "<form action='file2.php' method='post'>\n";

// get number of elements in array with count
$count = 0; // Foreach with counter is probably best here
foreach ($myarray as $line) {

  $count++; // increment the counter

  $par = getvalue($line);

  if ($par[1] <= 200) {
    // Note the [] after the input name
    print "<input type='checkbox' name='test[$count]' /> ";
    print $par[0]." "; 
    print $par[1]." ";
    print $par[2]." ";
    print $par[3]."<br />\n";
  }

}

print "</form>";

file2.php:

<?php

  foreach ($_POST['test'] as $lineno) {
    print "Line $lineno was checked<br />\n";
  }

編集

file2.phpに、チェックされたファイルの行を表示させたいとします。

<?php

  $filename = "file.txt";

  $myarray = file($filename);

  foreach ($_POST['test'] as $lineno) {
    // We need to subtract 1 because arrays are indexed from 0 in PHP
    print $myarray[$lineno - 1];
  }
于 2012-06-30T20:20:17.667 に答える