0

JavaScriptを使用してPHPスクリプトを表示/非表示にする方法を理解しようとしています。

JavaScript:

<script type="text/javascript">
function showhide(id){ 
    if (document.getElementById){ 
    obj = document.getElementById(id); 
    if (obj.style.display == "none"){ 
    obj.style.display = ""; 
    } else { 
     obj.style.display = "none"; 
    } 
  }
} 
</script>

ボディコード:

<?php
echo "<a href='javascript:showhide('delivery.php');'>Show/Hide Delivery options</a>";
require "delivery.php" ?>

なぜ/どのようにこれを機能させることができるかについてのアイデアはありますか?

どんな助けでも大歓迎です!

4

4 に答える 4

1

あなたが探しているのはajaxだと思います(例: http: //api.jquery.com/jQuery.get/

于 2012-05-08T21:26:38.803 に答える
1

JavaScript はクライアント側です。つまり、Web サイトがサーバーからダウンロードされた後、PC 上で実行されます。

PHP はサーバー側です。つまり、PHP はサーバー コンピューターで実行され、純粋な HTML ページを PC に送信します。

それが不可能な理由です。これを行うには、いくつかの変数を使用して PHP を使用する必要があります。それ以外の場合は、javascript/ajax を使用してサーバーに要求を送信できます。サーバーは新しい情報をクライアントに送り返し、クライアントはページを更新できます。

ただし、次のように PHP で行う方がよいでしょう。

if (isset($_GET['some_var'])) {
    switch ($_GET['some_var']) {
        default: case "blah":
                 include("somefile.php"); break;
        case "nyah":
                 include("some_other_file.php"); break;
    }
}

「some_var」は、次のようなフォームで PHP ページに送信できます。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
    <input type="text" name="some_var" value="blah"/>
    <input type="submit" value="Go"/>
</form>

テキスト フィールドに「blah」と入力して送信すると、ページに「somefile.php」が表示されますが、「nyah」と入力すると、代わりに「some_other_file.php」の内容が表示されます。

お役に立てれば。

于 2012-05-08T21:30:11.327 に答える
1

ここでやっている方法では、やろうとしていることを達成することはできません。コメントで@Ozzyが述べたように、それは不可能です。

これは、Javascript コードが PHP コードが何を行っているかを認識していないためです。JS コードが認識しているのは、ブラウザが受信したものだけです。これはdelivery.php、ページの一部としてファイルの内容を取得することを意味しますが、そのファイルが何と呼ばれていたかは言うまでもなく、それが別のファイルからページの残りの部分に由来することを認識していません。

簡単な答えは、ステートメント<div>の周りにラッピング要素を追加することです。require()

これにより、Javascript コードが表示/非表示機能のターゲットにできる要素が得られます。

したがって、PHP コードは次のようになります。

<?php
echo "<a href='javascript:showhide('deliveryblock');'>Show/Hide Delivery options</a>";
echo "<div id='deliveryblock'>";
require "delivery.php"
echo "</div>";
?>

(これは、 によって生成されたコンテンツdelivery.phpが有効な HTML コードであることを前提としていますが、そのファイルがどのように見えるかを示していないので、そのように仮定する必要があります)。

それが役立つことを願っています。

于 2012-05-08T21:33:09.640 に答える
0

基本的に、ページ上のコンテンツを表示/非表示にしようとしていると思います。関数showhideは、Web ページの一部の html コンポーネントに対してのみ機能します。「delivery.php」の内容を のような要素に入れてみてください<div id='deliverydiv'></div>。次に、を使用しますshowhide('deliverydiv')

于 2012-05-08T21:34:42.723 に答える