まず何か..もし何らかのパラメータが配列なら、それを$ resultsと呼ぶとより論理的になり、$ resultとなります。任意の関数やここにバッファを追加するには、特別な理由がない場合は、単にecho '<input name="' . $somearray['name'] . '">';
ができるかどうか。また、なぜecho "<input name=\"" . $somearray['name'] . "\">";
:$identifier = $array['name_file'];
を、そしてあなたの問題はあるかもしれない、あなたはunset();
と$identifier
を終了していないこと。
foreach ($result as $array){
$identifier = $array['name_file'];
echo '<input type="hidden" id="id_file" value="' . $array['id_file']. '\">';
echo $array['name_file'] . '<a id="' . urlencode($identifier) . '\" href="#" class="delete" >Delete</a><br/>';
unset($identifier);
}
新しいエントリがロードされるときに自動的に生成foreach
「$配列」は、設定解除されますので、しかし$identifier
はしません。だから私の最初の推測では、これでしょう。そのため、次のエントリの値をリセットするにはunset()
が必要です。
は、しかし、はるかに容易完全に$識別子を削除するには、次のようになります。
foreach ($result as $array){
echo '<input type="hidden" id="id_file" value="' . $array['id_file']. '\">';
echo $array['name_file'] . '<a id="' . urlencode($array['name_file']) . '\" href="#" class="delete" >Delete</a><br/>';
}
私が選ぶだろうが、これは基本的に問題を解決する必要があり、あなたのコード内の他のいくつかのポイントがあります。あなたのコメントに基づいて
EDIT
、私はこれらのスクリプトを作成しました。 基本的に無料でプログラミングしています:) ご理解いただけるように、カスタムdbクラスなどを自分で追加する必要があります。しかし、彼らは単純な配列であるように見えます。そして、これはトリックを行う必要があります:私はこの.. $ディレクトリ= DIR($パス)のために何らかの理由を見つけるカント
include '../Model/File.php';
$objFile = new File();
$files_array = $objFile->listFiles();
まず、いくつかのノートを...。
ここでタイプは何ですか?あなたのスクリプトはアップロードを処理しないようです.. $ types = array( 'jpg'、 'jpeg'、 'txt'、 'gif'、 'png'、 'doc'、 'docx'、 'pdf'、 ' xlsx '、' pptx ');
なぜここにありますか?提供されたコードの上に他の変数がある場合は、unset($ identifier); $ identifier = "";
上記の例の配列があるので、この部分をコメントアウトしました。 $ objFile = new File(); $ result = $ objFile-> listFiles();
ライブ例:私はファイルを持っていないことをhttp://kopli.pri.ee/stackoverflow/6986586.php
注..ですから、例えば、一般的な表が表示され、また、jQueryの効果されている方法です。
メインファイル
<html>
<head>
<title>Kalle rocks!</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<style>
table {width: 600px; margin: 0px auto;}
th, td {padding: 5px;}
th {border-bottom: 1px solid black;}
.tfoot {background: #EAEAEA;}
.delete {background: #FFCECE; color: black; cursor: pointer; text-align: center;}
</style>
</head>
<body>
<?php
// Where the files sit
$path = 'uploadedfiles/';
// Example array
$files_array[] = array(
'id_archivo' => 41,
'nombre_archivo' => '1294861647_-desktop.png',
'fecha' => '2011-08-08 15:10:09'
);
$files_array[] = array(
'id_archivo' => 42,
'nombre_archivo' => 'Dragon_Ball_Simpsons.jpg',
'fecha' => '2011-08-08 15:11:49 '
);
$files_array[] = array(
'id_archivo' => 43,
'nombre_archivo' => 'VATOS.jpg ',
'fecha' => '2011-08-08 16:30:00'
);
// Start the table
echo '<table cellpadding="0" cellspacing="0" border="0">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Date</th>
<th>Delete</th>
</tr>
</thead>
<tbody>';
// Run the foreach loop
$files_displayed = 0;
foreach ($files_array as $fileid => $file){
$files_displayed++;
echo '<tr id="fileid_' . $fileid . '">
<td>' . $fileid . '</td>
<td>' . $file['nombre_archivo'] . '</td>
<td>' . $file['fecha'] . '</td>
<td class="delete"><span>[X]</span></td>
</tr>';
}
// End the table and display totals
echo '</body>
<tfoot>
<tr>
<td colspan="4" class="tfoot">Currently displaying ' . $files_displayed . ' files total</td>
</tr>
</tfoot>
</table>';
?>
<script>
$('.delete').click(function() {
var file_row = $(this).parent('tr');
var fileid = file_row.attr('id').replace('fileid_', '');
$.ajax({
type: 'get',
url: 'ajax_file_delete.php',
data: 'action=delete&fileid=' + fileid,
beforeSend: function() {
},
success: function() {
file_row.fadeOut('slow');
}
});
});
</script>
</body>
</html>
アヤックスは、私はあなたが$directory
少なくとも一つを使うべきだと思うこれらの事で私の正直な意見で(ajax_file_delete.php)
<?php
$path = 'uploadedfiles/';
// In theory, your include '../Model/File.php'; and $result= $objFile->listFiles(); should be included here, so the array would be imported
$files_array[] = array(
'id_archivo' => 41,
'nombre_archivo' => '1294861647_-desktop.png',
'fecha' => '2011-08-08 15:10:09'
);
$files_array[] = array(
'id_archivo' => 42,
'nombre_archivo' => 'Dragon_Ball_Simpsons.jpg',
'fecha' => '2011-08-08 15:11:49 '
);
$files_array[] = array(
'id_archivo' => 43,
'nombre_archivo' => 'VATOS.jpg ',
'fecha' => '2011-08-08 16:30:00'
);
if ($_GET['delete']) {
unlink($path . $files_array[$_GET['fileid']]['nombre_archivo']);
// also, you can add here some mysql related stuff to delete the file from the db
}
?>
あなたは何をしているのかわかりませんが、 '$ directory'は使わないでください – Shoe
'ファイルのID'とは何ですか? iノード番号?フルパス?ちょうどファイル名ですか?ここでは、生のファイルシステムへのアクセスを扱っているので、悪意のあるユーザーは '/ etc/passwd'のように何かをしてシステムを嫌うことはできません。 –
私はすでに答えを編集していますそれは良いと書かれています –