2016-12-11 6 views
0

JavaScript、jQueryなどを使用せずに、PHPのみでボタンを有効にしたり無効にしたりする方法について説明しましたが、PHPプログラミングの新機能です。
これは私のコードです:純粋なPHPを使用して有効にしたり無効にしたりするにはどうすればいいですか?

<?php 
if(isset($_POST['save'])) 
{ 
    echo 'Hello robin'; 
} 

if(isset($_POST['serach'])) 
{ 
    echo 'Byeeee robin'; 
} 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <link rel="stylesheet" href="BootStrap/css/bootstrap.min.css"> 
     <title></title> 
    </head> 
    <body> 
     <div class="container jumbotron"> 
      <form action="" method="post"> 
       <div class="btn-group-xs"> 
        <button type="submit" id="btn1" name="save">Save</button> 
        <button type="submit" id="btn2" name="serach">Search</button> 
       </div> 
      </form> 
     </div> 
    </body> 
</html> 
+1

まず最初:1つのスクリプト内のHTMLフォームと処理ロジックを実装するために多くのチュートリアルに示されている愚かなhabbitを停止あなたは純粋なPHPソリューションをしたい場合しかし、あなたはこのようにそれを行うことができます。 2つの別々のファイルまたはスクリプトを使用します。 2番目:もしそうした場合は、送信ボタンをクリックするとフォームは、フォーム処理(別のHTMLページまたはリダイレクト)への返信として送信されたHTMLに置き換えられます。 – arkascha

+1

まさに、何が必要でしたか?どのボタンを無効にしますか?どのような状態でそれは無効になるでしょうか? – nmnsud

+2

phpはサーバー側ですので、最初から無効にしない限り、javascriptを使用しない限り変更できません。 –

答えて

0

あなたはこのような動作の保存に成功した後、例えば保存]ボタンを無効にすることができます:PHPはステートレスで、この基本的な解決策は、各ページ全体の演出を誘発するので

<?php 
$isSaveDisabled = false; 
if(isset($_POST['save'])) 
    { 
     echo 'Hello robin'; 
     $isSaveDisabled = true; 
    } 
if(isset($_POST['serach'])) 
    { 
     echo 'Byeeee robin'; 
    } 

?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <link rel="stylesheet" href="BootStrap/css/bootstrap.min.css"> 
     <title></title> 
    </head> 
    <body > 
     <div class="container jumbotron"> 

     <form action="" method="post"> 

      <div class="btn-group-xs"> 
      <button type="submit" id="btn1" name="save" <?php if ($isSaveDisabled) { echo 'disabled="disabled"';}?>>Save</button> 
      <button type="submit" id="btn2" name="serach">Search</button> 
      </div> 


     </form> 
     </div> 
    </body> 
</html> 

ユーザーインタラクションの後に、アプリケーション全体の状態を評価して構築し、各要求後にそれに基づいてページをレンダリングする必要があります。 (この単純な例では、[保存]ボタンが有効かどうかを評価する必要があることを意味します)

フロントエンドロジックが関係している場合でも、常にバックエンド側の状態を検証する必要がありますJS-onlyの制限を克服するのは簡単です。 しかし、通常は、ユーザーエクスペリエンスを向上させるためには、両方とも持っている価値があります(AJAX経由で保存すると保存ボタンはすぐに無効になります)。

紳士がコメントはできるだけロジックとコードを分離することが非常に重要です。それが実験のためのものなら、それは完全にうまくいっています。しかし、アプリケーションが成長するにつれて、指数関数的に何が起こっているのかを知ることは難しくなります。その結果、ますますバグやメンテナンスが困難になることがあります。

(作成ボタンを押した後、[保存]ボタンを無効にする質問に対して。)UPDATE

これは通常、私は生産使用のためにそれをお勧めしませんJavaScriptで実装するのにはるかに優れて何の関数です。

<?php 
$isSaveDisabled = false; 
if(isset($_POST['save'])) { 
    echo 'Hello robin'; 
} else if (isset($_POST['create'])) { 
    $isSaveDisabled = true; 
} 
if(isset($_POST['serach'])) { 
    echo 'Byeeee robin'; 
} 

?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <link rel="stylesheet" href="BootStrap/css/bootstrap.min.css"> 
     <title></title> 
    </head> 
    <body > 
     <div class="container jumbotron"> 

     <form action="" method="post"> 
      <div class="btn-group-xs"> 
       <button type="submit" id="btn1" name="save" <?php if ($isSaveDisabled) { echo 'disabled="disabled"';}?>>Save</button> 
       <button type="submit" id="btn2" name="serach">Search</button> 
       <button type="submit" id="btn3" name="create">Create</button> 
      </div> 
     </form> 
     </div> 
    </body> 
</html> 
+0

ありがとうDavid – user3526020

+0

よろしくお願いします。複雑なアプリケーションを実装する場合は、ol'trusty Smartyのようなテンプレートソリューションを学ぶと助けになります。http://www.smarty.net/ –

+0

デビッドに感謝しますが、保存のような4つのボタンがあります、Create、Modify、Delete、今すぐ無効にしたいCreateボタンをクリックすると保存ボタン – user3526020

関連する問題