-5

ユーザー入力に基づいてコントロールを有効にしたい..ユーザーが[はい]をクリックした場合は表示したい、そうでない場合は非表示にしたい..関数を呼び出し、それに基づいて値を割り当て、コントロールを表示したい。

これはphp関数です

<?
$hscEnable="false";
function HSControl($val) 
{
    if($val=="yes")
    {
        return("true");
    }
    else
    {
        return("false");    
    }
}
?>

htmlフォームから呼んでいます

<input type="radio" name="twelthStudiedStatus" value="no" id="twelthStudiedStatus_1" checked onClick= <? $hscEnable=HSControl("no"); ?> >

  <? if($hscEnable=="true"){ ?>
  <tr>
    <td>Percentage :</td>
    <td><input type="text" name="twelthPercentage" /></td>
  </tr>
  <?  } ?>
4

3 に答える 3

2

PHPはサーバー上にあり、JavaScriptはWebページが呼び出されるクライアント上にあるため、JavaScriptを介してPHP関数を直接呼び出すことはできません。これは、 Ajaxを使用して解決できます。または、コントロールを無効または有効にするだけの場合は、PHPの代わりにJavaScriptを直接使用できます。

Ajaxがないと、サーバーリクエストなしでPHPを実行することはできません。したがって、別の解決策は、ページ全体をリロードし、新しいコントロールを使用して新しいページをPHP経由でクライアントに送り返すことです。

この画像を見て、「php:サーバー、javascript:クライアント」のロジックを理解してください ここに画像の説明を入力してください

于 2012-08-16T10:37:37.783 に答える
0

AJAXを使用してサーバー側の関数を呼び出すことができます。jQueryを使用するとこれが非常に簡単になります。

http://api.jquery.com/jQuery.ajax/を参照してください

于 2012-08-16T10:38:56.373 に答える
0
<script type="text/javascript">
    function HSControl(value) {
        document.getElementById("twelthPercentage").style.display = (value == 'no') ? "none" : "block";
    }
</script>
<input type="radio" name="twelthStudiedStatus" value="no" id="twelthStudiedStatus_1" checked onClick=HSControl('no')>
<input type="radio" name="twelthStudiedStatus" value="yes" id="twelthStudiedStatus_1" onClick=HSControl('yes')>
<tr>
    <td>Percentage :</td>
    <td><input type="text" id="twelthPercentage" name="twelthPercentage" hidden/></td>
</tr>
于 2012-08-16T11:42:42.863 に答える