2016-07-23 4 views
2

PHPが初めてです。リフレッシュせずに他のPHPに変数を渡す

  • のindex.php
  • のfunctions.php(機能を整理する)
  • 私は(今のところ行われていた)簡素化したいheader.phpの

:私はこれらの3つのファイルを持っていますindex.phpのページでは、このようなものを何度も何度も書く必要はありません。私ものfunctions.phpに機能させることにより、さらに物事を単純化している

header.phpの

<!Doctype html> 
<html lang="en"> 

<head> 
    <title>Learn PHP</title> <!--This is the problem, every page that loads header.php will have same title! --> 
</head> 

<body> 
<div class="header"> 

    <h1>Learn PHP</h1> 
    <p>Your library of PHP learning!</p> 
    <hr/> 
</div> 
<!-- footer is handled by footer.php that include </body> and </html>--> 

:だから私はindex.phpをによってロードすることができheader.phpのを作成しましたですので、コード全体をもう一度書き込むことなく、index.phpに「get_header()」と入力するだけで済みます。今

のfunctions.php

<?php 

function get_header(){ 
     if (file_exists('header.php')){ 
       require 'header.php'; 
      } 
      else{ 
       echo "There is an error retrieving a file"; 
      } 
    } 

?> 

、どのように私はこれのindex.phpはカスタムページタイトルの代わりに、header.phpのことで与えられたデフォルト値を持つことができますか?

私は何か重要なものがありません。私は変数を作成しようとしましたが、それを関数.phpに渡そうとしましたが、機能しませんでした。またはこれを行うためのクリーナーの方法はありますか?

私はwordpressがファイルを整理する方法に触発されています。私はwordpressファイルをチェックしました。そして、私は一から何かを試してみることにしました。私はよりよく理解し、PHPのスキルを向上させます。

特にを私はPOSTを使用してGETすることができます知っていないが、私はいけない何がちょうどページのタイトルを変更するために新しいページを更新またはロードしたいのindex.php

編集:ここでは

私は私を含めfunctions.phpでのindex.php

<?php 
    require 'functions.php'; 
?> 
<?php 
    get_header(); 
?> 

<table> 
    <h3>What we learned</h3> 

    <ul> 
     <li><a href="sample">Syntax</a>   </li> 
     <li><a href="sample">Variables</a>  </li> 
     <li><a href="sample">Code Flow</a>  </li> 
     <li><a href="sample">Arrays</a>   </li> 
     <li><a href="sample">Superglobals</a> </li> 

    </ul> 
</table> 

<?php get_footer(); ?> 
+0

ページリフレッシュなしで変数を渡すためにajaxを使用する –

+0

私はあなたが何を意味しているのか知っていますが、これはページが読み込まれる前に起こります。ユーザーに何かをクリックするよう要求しない限り、AJAXは必要ありません。これはサーバー側から自動化しようとするためです。 –

答えて

0

function get_header(){ 
    if (file_exists('header.php')) 
     require 'header.php'; 
    else echo "There is an error retrieving a file"; 
} 
header.phpの中

、および地上子のタイトルであなたは、セッションパラメータを呼び出す

<!Doctype html> 
<html lang="en"> 

<head> 
    <title> 
    <?php if(!empty($_SESSION['title-page'])) echo $_SESSION['title-page']; else 'Learn PHP'; ?> 
    </title> 
</head> 

<body> 
<div class="header"> 

    <h1>Learn PHP</h1> 
    <p>Your library of PHP learning!</p> 
    <hr/> 
</div> 
<!-- footer is handled by footer.php that include </body> and </html>--> 

とindex.phpの

<?php 
    session_start(); 
    $_SESSION['title-page'] = 'this is the welcome Page'; 
    require 'functions.php'; 
    get_header(); 
?> 

<table> 
    <h3>What we learned</h3> 

    <ul> 
     <li><a href="sample">Syntax</a>   </li> 
     <li><a href="sample">Variables</a>  </li> 
     <li><a href="sample">Code Flow</a>  </li> 
     <li><a href="sample">Arrays</a>   </li> 
     <li><a href="sample">Superglobals</a> </li> 
    </ul> 
</table> 

<?php get_footer(); ?> 

で、別の-page.phpで

<?php 
    session_start(); 
    $_SESSION['title-page'] = 'this is an another Page'; 
    require 'functions.php'; 
    get_header(); 
?> 

<table> 
    <h3>What we learned</h3> 

    <ul> 
     <li><a href="sample">Syntax</a>   </li> 
     <li><a href="sample">Variables</a>  </li> 
     <li><a href="sample">Code Flow</a>  </li> 
     <li><a href="sample">Arrays</a>   </li> 
     <li><a href="sample">Superglobals</a> </li> 
    </ul> 
</table> 

<?php get_footer(); ?> 
+0

申し訳ありませんが、どういう仕組みか分かりません。また、header.phpもindex.phpによって読み込まれています。 index.php> header.php> functions.php –

+0

@ Mohd.Zafranudin;それはあなたのために働いていますか?またはそうでないか – bfahmi

+0

いいえ、それはエラーをスローしますrequire(header.php?title = title):ストリームを開けませんでした。私は何かを見逃していると思うが、私はget_header( "title")にもパラメータを入れていた –

1

あなたが必要とするすべてのものは、簡単なものが必要なようです。インクルードはインクルードがどこからインクルードされたのと同じスコープを持っているので、ここでは関数を使って実際にはもっと難しくしています。例えば。

header.inc

… 
<title><?php echo isset($title) ? $title : 'Untitled';?></title> 
… 

のindex.php

<?php 
$title = 'Welcome'; 
require 'header.inc'; 
?> 
welcome 

別-page.php

<?php 
$title = '2nd page'; 
require 'header.inc'; 
?> 
2nd page content 

あなたが機能を使用したい場合は、パラメータ与えます。

function get_header($title = 'Some default title') { 
    … 
} 

インクルードされたファイルは、関数のスコープ内の変数にアクセスできます。

関連する問題