0

メニューリンク用とコンテンツ用の 2 つの div があります。私ができるようにしたいのは、メニューリンクとそのメニューリンクのページをクリックして、コンテンツ div にロードすることです。

私はすでにこれを行っており、動作します。問題は、div 内のページに成功メッセージが表示されないフォームが含まれており、データベースが更新されないことです。

メイン コンテンツ ページに更新するか、コンテンツ ページと同じように現在のウィンドウを開くか、コンテンツ ページを含む新しいウィンドウを開くだけです。

これにはどのような解決策がありますか?

Logged_in.php

左の div = メニュー

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){

  $(".menuLink").click(function(){

$.ajax({
  type: "POST",
  url: $(this).attr('href'),
  data: "",
  cache: false,
  success: function(html){ $("#Middle").html(html); }
});

 });

});
</script>

</head>
<body>
    <div id="head">

<div class="lefttop" align="center">

  <div class="lefttopleft">
  <a class="menuLink" href="Test.php" onclick="return false;"><img src="Images/logo.jpg" width="94" height="21" /></div>

そのリンクをクリックすると、ページがコンテンツ div に読み込まれるため、そのページがコンテンツ div のフォームで表示されますまたは、ページをクリックしてファイルをロードするか、新しいウィンドウでロードします。

コンテンツ div の Test.php

session_start();
include_once("connect.php");
include_once("functions.php");

if($_POST['WallSubmit'] && $_POST['Wall']){

  $wall = makesafe($_POST['Wall']);

mysql_query("INSERT INTO `Wall` (`ID`, `Username`, `MessageBy`, `Date`, `Message`) VALUES ('', '', '$username', '" . time() . "', '$wall')");

}

?>

<body>
<form method="post">
  <table class="default" style="width: 80%" align="center">
<tr>
  <td class="subheader">Wall</td>
</tr>
<tr>
  <td class="content">Post a comment.<br /><textarea name='Wall' id='Wall' style='width: 99%; height: 110px;'></textarea><br /><br/><center><input type='submit' value='Post' name='WallSubmit' /></center><br /><hr><br />Latest Comments.</td>
</tr>
</td>
</table>
</form>
</body>
</html>

私がどこでも見たこれを回避する簡単な方法はありますか?

4

1 に答える 1

1

まず、フォームタグにアクションを設定してみてください。アクションは、フォームが送信されるページを定義します。

<form method="post" action="Test.php">

これにより、フォームが Test.php に送信されます。それでも何も起こらない場合は、変数ダンプ ( manual ) をvar_dump($POST);ページの上部に印刷してみてください。その後、投稿属性のすべての設定値が表示されます。そこから、エラーを簡単に見つけることができます。

編集

あなたのコメントの後、AJAX でフォームを送信し、コンテンツ div をリロードしようとしていることに気付きました。これは 2 つの手順で行う必要があります。まず、フォームのデータを Test.php に送信してから、コンテンツ div をリロードします。この質問に出くわした場合: jQuery AJAX submit form . これは、フォームの送信方法に役立つ場合があります。戻り値を使用したい場合は、次のように試すことができます。

$.post("Test.php", $("#form").serialize(),
   function(data) {
     alert("Returned data: " + data);
   });

jQuery.post()を参照してください

于 2012-06-25T14:39:05.240 に答える