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