みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

削除ボタンを押すとperlにてデータを削除するようにしたいんですができません。

フォーム.html(一部)
<form name="form1" method="post" action="admin.cgi">
<input type="hidden" name="mode" value="edit3">
<table width="740" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td><b>クライアント(ロードサイド)</b>
<input type="hidden" name="group" value="1">
<br>
※前のページへ戻る場合には、ブラウザの戻るボタンでお戻りください。</td>
</tr>
</table>
<br>
<table width="740" border="1" cellspacing="0" cellpadding="10" align="center" bordercolor="#333333">
<tr>
<td bgcolor="#FFEEEE">このデータを削除する場合には、下の削除ボタンをクリックしてください。<br>
※この作業は取り消しができませんので、よく確認してから削除ボタンをクリックしてください。<br>
<br>
<input type="button" value="物件NO: _%data_num%_ を削除する" onClick="location.href='admin.cgi?mode=del&group=_%group%_&data_num=_%data_num%_'">
<br>

この「物件NO: 」のボタンを押すとadmin.cgiに飛び
データファイル内のデータを空にします。

----------------admin.cgi----------------------------------
if($param{'mode'} eq 'del'){
##=====================================
## 物件データをオープン =
##=====================================
if($param{'group'} eq '1'){ $datafile = $datafile1;}
elsif($param{'group'} eq '2'){ $datafile = $datafile2;}
elsif($param{'group'} eq '3'){ $datafile = $datafile3;}

if(!stdio::lock($lock)){ error('システムエラー','只今混み合っております.'); }# ロック
if(!open(DATA,"+<$datafile")){ stdio::unlock($lock); &error('システムエラー',"ファイル ( $datafile ) をオープンできませんでした。"); }
@data = <DATA>;

foreach(@data){
@data2 = split(/,/);
if($data2[0] eq $param{'data_num'}){
$_ = '';
last;
}
elsif($data2[0] eq $param{'data_num2'}){
$_ = '';
last;
}
}


seek(DATA,0,0);
print DATA @data;
truncate(DATA,tell(DATA));
close(DATA);
stdio::unlock($lock);

##=====================================
## テンプレートオープン =
##=====================================
if(!open(HTML,$html_finish)){ &error('システムエラー',"ファイル ( $html_finish ) をオープンできません。"); }
@html = <HTML>;
close(HTML);


##=====================================
## HTML出力 =
##=====================================
print <<"EOF";
Content-type: text/html

@html
EOF
exit;
}# モード del ここまで
-----------------------------------------------------
この「data_num2」の削除には成功するんですが
「data_num」の場合はボタンを押しても何も起こりません。

恐らく「data_num」のif文に行っていないのだと思うんですが、
何が原因か分かりません。

情報が少ないかもしれませんが
解決の糸口をお願いします。
データはcsv形式のファイルです。

投稿日時 - 2009-11-10 17:47:13

QNo.5437062

すぐに回答ほしいです

質問者が選んだベストアンサー

全体がよくわかりませんが…

>この「data_num2」の削除には成功するんですが
>「data_num」の場合はボタンを押しても何も起こりません。
「data_num2」と「data_num」のHTMLの違いが読み取れないけれど、HTMLを見るとPOST送信のformで、imputボタンを押すとスクリプトでロケーションを操作しているみたいですけど?(GET送信になっている?)
submitボタンは設置していないのでしょうか?

まずは、各ケースでperl側で正しくパラメータを取得できているかをチェックしてみてはいかがでしょうか?

投稿日時 - 2009-11-10 18:41:45

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問