php
  • jquery
  • select
  • 2016-03-27 7 views -1 likes 
    -1

    の場合Singaporeanという値を選択するといつでも.citiesをコメントアウトしたいと思いますが、私はsingaporeanから離れて他の国籍を選択すると表示されます。 PHPで可能ですか?PHP - 選択オプションの値が

    <div class="cities">New York</div> 
    
    <select id="emp_nationality" name='emp_nationality' class='form-control'> 
    <option value="Singaporean">Singaporean</option> 
    <option value="Albanian">Albanian</option> 
    <option value="Algerian">Algerian</option> 
    <option value="American">American</option> 
    </select> 
    

    私はこれを試してみましたが、何らかの理由でそれが

    <?php 
    
    if ($_POST['emp_nationality'] != 'Singaporean') { 
    echo '<div class="cities">New York</div>'; 
    } 
    
    
    ?> 
    

    ERROR機能していません:未定義のインデックス:emp_nationality

    +0

    お知らせ:未定義のインデックス:emp_nationalityはそのような変数が存在しないことを意味し、これらのオプションはありますか。あなたのコードを投稿してください – Innervisions

    +0

    投稿タグを使って投稿タグを投稿すると – sismaster

    +0

    答えて

    1

    あなたはJSでのonchangeハンドラを使用することができますをし、選択した値に応じて ".cities" divを表示/非表示します。注意:選択リストの最初のオプションがSingaporeanであり、関数がそれをトリガするために変更を必要とするため、.citiesにnone:noneを追加しました。また、私は通常、別のハンドラとしてonclickを分離するだろう - それをHTMLに混ぜるのではなく、この例ではこのようにした。ページの読み込み時にオプションを選択する必要があるPHPを必要とせず、別の選択肢でdivの表示を簡単に変更できません。これは、正しいオプションが選択されている場合にdivを非表示にし、他のオプションの選択肢に表示する機能です。

    \t function hideDiv(option) \t 
     
    \t { 
     
    \t \t if(option=="Singaporean"){$('.cities').hide()}else{$('.cities').show()} 
     
    \t }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <div class="cities" style="display:none">New York</div> 
     
    
     
    <select id="emp_nationality" name='emp_nationality' class='form-control' onchange="hideDiv(this.value)"> 
     
    <option value="Singaporean">Singaporean</option> 
     
    <option value="Albanian">Albanian</option> 
     
    <option value="Algerian">Algerian</option> 
     
    <option value="American">American</option> 
     
    </select>

    <div class="cities" style="display:none">New York</div> 
    
    <select id="emp_nationality" name='emp_nationality' class='form-control' onchange="hideDiv(this.value)"> 
    <option value="Singaporean">Singaporean</option> 
    <option value="Albanian">Albanian</option> 
    <option value="Algerian">Algerian</option> 
    <option value="American">American</option> 
    </select> 
    
    
    //js 
    function hideDiv(option)  
    { 
        if(option=="Singaporean"){$('.cities').hide()}else{$('.cities').show()} 
    } 
    
    +0

    素晴らしいです!これは問題の半分を解決します。クラスcititesは私の必須フィールドです。私のフォームが検証されないことを私が隠すのであれば.. –

    +0

    しかし、都市は入力フィールドではないので、 "必須"にすることはできません。それはdivです。入力フィールドにする必要がある場合は、入力フィールドにする必要があります。次に、属性をdisabledに設定すると、フォームには使用できますが使用されません。ちなみに、あなたのOPのように - あなたがコメントした場合、それはページにレンダリングされず、有効でなくてもプレゼントされます! – gavgrif

    +0

    ああ、申し訳ありません..私の入力フィールドのみです.. –

    0

    あなたは「未定義のインデックス:emp_nationality」を避けるために希望がお好みであれば、この変数は、それが価値だ確認する前に存在していることを確認する必要があります。 isset()を使用してください。 http://php.net/manual/en/function.isset.php

    if (isset($_POST['emp_nationality']) && ($_POST['emp_nationality'] != 'Singaporean')) { 
        echo '<div class="cities">New York</div>'; 
    } 
    
    +0

    これはページの読み込み時にdivを表示/非表示にしますが、ユーザーが別のオプションを選択した場合、 ".cities"の表示を許可しないという問題がありますページが読み込まれた後元の問題の私の理解は、選択肢が "シンガポール"値でない場合、異なるオプションの選択によってdivの表示が可能になるということでした。 – gavgrif

    関連する問題