0

私は、さまざまなページをロードする div を持つメインのランディング ページがある Web ページに取り組んでいます。ページ全体がリロードされないようにこれを行いましたが、ajax はその div 内の別のページをロードするための呼び出しを送信するだけです。div をリダイレクトできるメインのランディング ページからの呼び出しが既にあります。しかし、div をリダイレクトするために div 内から呼び出しを受けることができません。

私の質問は、私がフォームを持っている div 内にロードされているページの 1 つにあります。そのフォームを送信していくつかのphpタスクを実行し、結果に応じてdiv内の別のページをロードしたいと思います。しかし、今何が起こっているのか、ページ全体が更新されています。

正確な答えは必要ありませんが、次のような状況に対する一般的なアプローチとマイナー コードだけが必要です。 div は 'b.php' に更新されます。何も入力しない場合、div は同じフォーム ページで再読み込みされます。

いくつかの関連コードは次のようになります...ランディングページ(div外):

//all the ajax that handles the reloading
<form>
<select id="ajaxmenu" size="1">
<option value="p1.php">Page 1</option>
<option value="p2.php">Page 2</option>
<option value="p3.php">Page 3</option>
</select>
<input type="button" onClick="ajaxcombo('ajaxmenu', 'contentarea')" value="Go" />
</form>
<div id="contentarea"></div>

form-page (div 内): フォームを含む基本的な php ページ...どうにかしてアクションとメソッドを変更する必要があるように感じます。このページにJavaScriptを追加する可能性がありますが、何をすべきか正確にはわかりません。

<form action='' method='POST'>
word:<input type='text' name='value'>
<input type='submit name='submit'>

お時間をいただきありがとうございました。どんな助けでも大歓迎です。

4

2 に答える 2

0

他のすべてが失敗したとき..... より大きなボックスを構築します。jquery と ajax を使用してページを送信する方法は既に知っています。私がすることは、これと同じ場所に別の隠し区画を作成することです. フォームを ajax で送信し、応答を他の部門に返し、単に既存のものを置き換えます。

于 2012-12-28T22:09:25.073 に答える
0

もう 1 つの解決策は、iFrame を使用することです。元:

    <iframe src="your_page.php" scrolling="no" frameBorder="0" style="position:absolute;top:0px;left:0px;height:100%;background-color:#ffffff;">
If you are seeing this your browser does not support iFrames.</iframe>

iFrame 内にページをロードすると、ブラウザは他のページを完全にロードして実行/レンダリングし、結果の html をページにインポートします。コードをインポートし、インポート後にページ内でレンダリングする div とは異なります。iFrame 内にページがあり、そのページ内のリンクをクリックすると、その新しいページで iFrame がリロードされるため、これは非常に便利です。他のページと同じように機能します。フォーム データが送信された場合でも、AJAX でページを切り替える必要がないため、はるかに簡単になります。

于 2013-01-10T15:52:10.390 に答える