Php 基于单选按钮检查值调用Javascript函数

Php 基于单选按钮检查值调用Javascript函数,php,javascript,Php,Javascript,我有一个表单,它根据用户的帐户设置设置默认值(存储在MySQL数据库中,并使用PHP提取)。当表单显示时,它会提取相关的帐户信息并填充表单(名字、姓氏、电子邮件、帐户类型等) 当用户的帐户类型为“admin”时,我希望表单的其余部分被禁用,并选择某些选项。如果用户的帐户类型为“admin”,因此默认选中了“edit_type_admin”单选按钮(见下文),则在加载页面时(无需任何单击),我希望调用下面的makeEditDisable()函数 现在,该表单显示帐户类型,如下所示: Client

我有一个表单,它根据用户的帐户设置设置默认值(存储在MySQL数据库中,并使用PHP提取)。当表单显示时,它会提取相关的帐户信息并填充表单(名字、姓氏、电子邮件、帐户类型等)

当用户的帐户类型为“admin”时,我希望表单的其余部分被禁用,并选择某些选项。如果用户的帐户类型为“admin”,因此默认选中了“edit_type_admin”单选按钮(见下文),则在加载页面时(无需任何单击),我希望调用下面的makeEditDisable()函数

现在,该表单显示帐户类型,如下所示:

Client or Admin: <br />
Client <input type="radio" name="edit_type" id="edit_type_client" value="client" <? if($selected_type == 'client') { echo 'checked'; } ?> onclick="makeEditEnable()" />
Admin <input type="radio" name="edit_type" id="edit_type_admin" value="admin" <? if($selected_type == 'admin') { echo 'checked'; } ?> onclick="makeEditDisable()" />
客户端或管理员:
客户端onclick=“makeEditDisable()”/>
在两个选项之间切换时,onclick makeEditEnable()/makeEditDisable()函数正常工作:

<script type="text/javascript">
          function makeEditDisable(){
              var x=document.getElementById("edit_access_begin")
              x.disabled=true;
              var x=document.getElementById("edit_access_expire")
              x.disabled=true;
              var x=document.getElementById("edit_project_access_yes")
              x.checked=true;
              var x=document.getElementById("edit_project_access_yes")
              x.disabled=true;
              var x=document.getElementById("edit_project_access_no")
              x.disabled=true
          }
         function makeEditEnable(){
            var x=document.getElementById("edit_access_begin")
            x.disabled=false;
            var x=document.getElementById("edit_access_expire")
            x.disabled=false;
            var x=document.getElementById("edit_project_access_yes")
            x.disabled=false;
            var x=document.getElementById("edit_project_access_no")
            x.disabled=false
         }</script>

函数makeEditDisable(){
var x=document.getElementById(“编辑访问开始”)
x、 禁用=真;
var x=document.getElementById(“编辑\访问\过期”)
x、 禁用=真;
var x=document.getElementById(“编辑项目访问权限是”)
x、 选中=正确;
var x=document.getElementById(“编辑项目访问权限是”)
x、 禁用=真;
var x=document.getElementById(“编辑项目访问号”)
x、 禁用=真
}
函数makeEditEnable(){
var x=document.getElementById(“编辑访问开始”)
x、 禁用=错误;
var x=document.getElementById(“编辑\访问\过期”)
x、 禁用=错误;
var x=document.getElementById(“编辑项目访问权限是”)
x、 禁用=错误;
var x=document.getElementById(“编辑项目访问号”)
x、 禁用=错误
}

将此添加到脚本或函数中,该脚本或函数在加载元素之后加载,当然在加载
makeEditDisable()
之后加载:

<? if($selected_type == 'admin') { echo 'makeEditDisable();'; } ?>


这将调用您的函数。

您可以使用类似于@Jeffman answer的PHP向页面添加函数调用。 但请确保在脚本本身之后添加类似的内容,否则它将在客户端的
未定义函数中生成
错误

或者您可以在页面onload或onDOMReady事件中调用它


我还想建议对脚本进行清理

var editableFields=['edit\u access\u begin'、'edit\u access\u expire'、'edit\u project\u access\u yes'、'edit\u project\u access\u no';
函数makeEditDisable(){

对于(var i=0;iI)我必须将我的PHP变量移动到页面上的标记之前,这样我就可以做类似于
if$body='';if($selected_type='admin'){$body=“”;}
谢谢!!不,我撒谎了-不需要移动。我只需要添加
if($selected_type='admin'){echo“makeEditDisable();”}
在声明PHP变量$selected_type之后,在需要禁用的表单元素之前。再次感谢,这非常有效。感谢您对此进行了一点清理。我对Javascript的了解足以使事情正常运行,但它们并不总是最佳的。完整的答案是以下答案的组合。我首先按照@Vitim.us的建议清理了javascript代码,然后添加了
if($selected_type=='admin'){echo“window.onload=makeEditDisable;“;}
有点像@Jeffman建议的那样。唯一的区别是
窗口。onload=makeEditDisable
,我用它在加载页面后调用函数,我在这里找到了:[
var editableFields = ['edit_access_begin','edit_access_expire','edit_project_access_yes','edit_project_access_no'];

function makeEditDisable(){
    for(var i=0; i<editableFields.length; i++)
        document.getElementById(editableFields[i]).disabled=true;
}
function makeEditEnable(){
    for(var i=0; i<editableFields.length; i++)
        document.getElementById(editableFields[i]).disabled=false;
}