0

MySQL データベース クエリから取得した値で埋められた html フォームがあります。クエリは、idGET 経由で送信される によって行われます。

アンカーで囲まれたボタンとともに id をフォームに送信します<a>

<a href='editRQS.php?id=$row[0]'><button class='edit'>Edit</button></a>

$row[0]適切なもので満たされ、正常idに機能していると確信しています。ボタンをクリックすると、URL が送信されますid。次に、次のように他のページで受信されます。

<?php
$id = -1;

if(isset($_GET['id'])){
    $id = $_GET['id'];
    echo "<label class='exists' id='idRequest'> $id</label>";       
}

if($id != -1 ){
    echo '<form id="findRequest" class="hide" >';
} else {
    echo '<form id="findRequest" class="show" >';
}   
?>

問題は、idがページに到着することですが、その後消えてしまいます。どんな助けでも大歓迎です。

編集

ページがリロードされるようです。理由はわかりません。ページ機能の一部を管理する JavaScript がいくつかあります。これを引き起こす唯一の原因は、別のフォームが送信されたときのイベント ハンドラーですが、次のように防止しました。

$('anotherForm').on('submit',function(e){
   .
   .
   .
   e.preventDefault();
 }

編集

助けてくれたみんなに感謝します。うまくいかない理由をまだ見つけていません。JavaScriptを無効にしようとしましたが、ページのリロードが停止しました。

4

2 に答える 2

0

フォームが送信されるため、ページがリロードされています。preventDefaultフォームの送信だけでは不十分です。送信ボタンがクリックされたときにフォームの送信を防止する後者を試してくださいe.preventDefault(); e.stopPropagation();(クリックは引き続き処理され、場合によってはフォームに伝播して送信されます。

また、jQuery を使用しているようです。イベントハンドラが false を返すようにするだけです。jQuery は、false を返すハンドラーをe.preventDefault() ||e.returnValue = false e.stopPropagation() || e.cancelBubble = true;構造に自動的に変換します。それとも、自分でコードを書くことができますか...?

于 2012-07-09T17:15:33.527 に答える
0

register_globals の設定を確認してください。オンになっている場合は、最初のステートメントで $_GET['id'] をオーバーライドします。

$id を $id 以外の名前に変更することで、簡単に確認できます。

于 2012-07-09T17:01:28.623 に答える