2012-05-08 29 views
0

JavaScriptを使用してPHPスクリプトを表示/非表示にする方法を理解しようとしています。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" ?> 

/どのように私はこの仕事を得ることができ、なぜ上の任意のアイデア?

ご協力いただきましてありがとうございます。

+8

これは永遠に理解できるかもしれません(それは可能でないため) – Ozzy

+0

AJAX/JQEURYを見てください。あなたは何をしたいのかをシミュレートするためにAJAXを使ってさまざまなものを読み込むことで、探しているものを得ることができます。 –

+1

phpファイルの内容や実行されたphpファイルの結果を表示しますか? – Zombaya

答えて

1

JavaScriptはWebサイトがサーバーからダウンロードされた後、それは、あなたのPC上で実行されることを意味し、クライアント側です。

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の内容が表示されます。

これが役に立ちます。

1

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

これは、JavascriptコードがPHPコードの動作を知らないためです。 JSコードが知っているのは、ブラウザが受け取ったものです。これは、ページの一部としてdelivery.phpファイルの内容を取得するが、そのファイルが何が呼び出されたかを知らずに、別のファイルからページの残りの部分に発信されたことを知らないことを意味します。

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

これは、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コードであることを前提としていないが、あなたがそう、そのファイルがどのようなものかを私たちに示していません私はその仮定をしなければならない)。

希望に役立ちます。

0

あなたは基本的にページの一部のコンテンツの表示/非表示を試みていると思います。 showhide機能は、ウェブページの一部のHTMLコンポーネントでのみ機能します。だから、 "delivery.php"の内容を<div id='deliverydiv'></div>のような要素に入れてみてください。次に、showhide('deliverydiv')を使用します。