2

データベースから 15 列を表示するページネーション システムを作成しました。ここで、他の値を含むドロップダウン メニューを追加したいので、ページネーション変数を 50 または 100 に変更できます。

私はJavaScriptを実行しましたが、思い通りに動作しません;)スクリプトに与えた最後の値のみを読み取り、ドロップダウンを変更しても何も起こりません。

スクリプトの一部

$per_page = 15; // Shows how many colums it shows per page

私のJavaScript

<script type="text/javascript"> 
function addit(){ 
    if(document.getElementById("add").value=="<?php $per_page = 15; ?>") 
    { 
        document.getElementById("amount").value="10" 
    } 
    if(document.getElementById("add")."<?php $per_page = 25; ?>") 
    { 
        document.getElementById("amount").value="25" 
    } 
    if(document.getElementById("add").value=="<?php $per_page = 50; ?>") 
    { 
        document.getElementById("amount").value="50" 
    } 
} 
</script> 

そしてフォーム

<form action=" " method="get"> 
<select style="width: 60px; font-size: 17px;" name="add" id="add" onChange="addit()">
<option value="X"> views</option> 
<option value="10">10</option> 
<option value="25">25</option> 
<option value="50">50</option> 
</select> 
</td> 
</tr> 

</tbody> 
</table> 
</form> 

任意のヒント ?

ありがとう

4

4 に答える 4

1

PHP Javascript が実行されるさまざまなポイントを理解する必要があります。PHP はサーバー上にHTML ページを作成し、それをブラウザーに送信します。そこで、Javascript が実行されます。

コードの 1 行を見てみましょう。

if(document.getElementById("add").value=="<?php $per_page = 15; ?>") 

サーバーは PHP 部分を実行します。ただし$per_page = 15、HTML の結果には何も出力しません。ブラウザで結果を見ると (「ソースの表示」を使用)、次のようになります。

if(document.getElementById("add").value=="")

Javascriptの 3 つのifステートメントはすべて次のようになりますが、すべて同じです。

ここからコードを再考してください。ページあたりの要素の量が PHP 部分で決定されている場合は、ページをリロードし、何らかの方法でこのパラメーターをサーバーに渡して、ページに配置する要素の数をサーバーに伝える必要があります。

于 2012-07-11T16:01:04.420 に答える
0

ここではJavascriptが必要だとは思いません。あなたはただ試すことができます:

形:

<form action="process.php" method="get"> 
   <select style="width: 60px; font-size: 17px;" name="add">
        <option value="X" disabled>Views</option>
        <option value="10">10</option> 
        <option value="25">25</option> 
        <option value="50">50</option> 
    </select> 
</form>

Process.phpになり得る:

$per_page = $_GET['add'];

//Code to display $per_page number of items..

確かに、クライアント側でのPHP変数の割り当ては機能しません。PHPはクライアント側では実行できないためです。この時点で、HTMLの実行と出力はすでに完了しています。Getまたは、Javascriptクエリの構築とリダイレクトを使用することもできます。

于 2012-07-11T16:19:44.557 に答える
0

ページがブラウザに送信された時点で、PHP はすでに処理を終了しているため、JavaScript での PHP の割り当ては、ページがブラウザに送信される前に番号を割り当てる以外には何もしません。

あなたがする必要があるのは:

  • 変更された javascript 変数とページネーション変数の値をサーバーにポストする /フォームを送信する
  • 新しい値を使用してページを再生成します
  • オプションで ajax を使用して、完全なリロードを行う代わりに、ページの一部のみを更新します。
于 2012-07-11T15:46:29.707 に答える
0

GET値を渡すために、JS関数がパラメータを付けて(同じ?)ページをロードすることをお勧めしますitems per page。たぶん次のようなもの:

function addit(){
    var itemsPerPage = document.getElementById("add").value;
    location.href = 'url of your page' + '?ipp=' + itemsPerPage;
}

次に、あなたphpの側で をキャッチし、$_GET['ipp']それを使用して、閲覧者の希望に応じてページをレンダリングします。

そして、あなたは取り除くことができます<form>.

于 2012-07-11T15:53:11.607 に答える