在单选按钮内从PHP echo调用JavaScript函数

在单选按钮内从PHP echo调用JavaScript函数,php,javascript,radio-button,Php,Javascript,Radio Button,我有一系列单选按钮,onClick可以显示或隐藏Div: 显示Div: <input type="radio" name="con[4]" value="1" onclick="toggleLayer4(this.checked);" id="con4" /> <input type="radio" name="con[4]" value="0" onclick="toggleLayer4(!this.checked);" checked="checked" id="con4

我有一系列单选按钮,onClick可以显示或隐藏Div:

显示Div:

<input type="radio" name="con[4]" value="1" onclick="toggleLayer4(this.checked);" id="con4" />
<input type="radio" name="con[4]" value="0" onclick="toggleLayer4(!this.checked);" checked="checked" id="con4" />
function toggleLayer4(val)
        {
            if(val == '1' || val === true)
            {
                document.getElementById('con4').checked = true;
                document.getElementById('con4PSTN').style.display = 'block';
            }
            else if(val == '0' || val === false)
            {
                document.getElementById('con4').checked = false;
                document.getElementById('con4PSTN').style.display = 'none';
            }
        }
现在的问题是,当pag被召回时,我可以像这样检查单选按钮:

<input type="radio" name="con[4]" value="1" onclick="toggleLayer4(this.checked);" <? if ($conn_count[3] == 1){echo "checked=\"checked\"";}?> id="con4" />

如果您是从php回音,那么您应该像

echo "<script type='text/javascript'>toggleLayer4(this.checked);</script>";
echo“toggleLayer4(this.checked);”;
但是你不能在那里使用
这个
。您需要手动获取单选按钮的值并传递它

编辑

当您希望在代码的某些部分显式调用函数,并且php代码是而不是带有
标记的时,就是这种情况


   <input type="radio" name="con[4]" value="0" onclick="toggleLayer4(0);" checked="checked" id="con4" />


   <input type="radio" name="con[4]" value="1" onclick="toggleLayer4(1);" checked="checked" id="con4" />
 function toggleLayer4(val)
    {
    if(val){
     document.getElementById('con4PSTN').style.display = 'block';}
    else{
     document.getElementById('con4PSTN').style.display = 'none';
    }
    }
功能切换LAYER4(val) { if(val){ document.getElementById('con4PSTN').style.display='block';} 否则{ document.getElementById('con4PSTN').style.display='none'; } }
这里有一个简单的、不引人注目的javascript,它将为您节省一些工作-请注意,收音机上不再有事件处理程序

我给了他们唯一的ID,这是强制性的

如果您需要将jQuery用于其他内容,那么这个脚本可以更优雅一些

我想

<input type="radio" name="con[1]" value="1" id="con1_1" />
<input type="radio" name="con[1]" value="0" id="con1_0" />
<input type="radio" name="con[2]" value="1" id="con2_1" />
<input type="radio" name="con[2]" value="0" id="con2_0" />
<input type="radio" name="con[3]" value="1" id="con3_1" />
<input type="radio" name="con[3]" value="0" id="con3_0" />
<input type="radio" name="con[4]" value="1" id="con4_1" />
<input type="radio" name="con[4]" value="0" id="con4_0" />

以及匹配对象以具有conxPSTN,其中x是con[x]中的数字

window.onload=function() {
  var conLength = <?php echo count($con); ?>;
  for (var i=1;i<=conLength;i++) {
    var cons = document.getElementsByName("con["+i+"]");
    for (var j=0;j<cons.length;j++) {
      cons[j].onclick=function() {
        var id = this.id.split("_")[0];
        document.getElementById(id+"PSTN").style.display = (this.value==1)?"block":"none"
      }
      if (cons[j].checked) cons[j].click();
    }
  }
}
window.onload=function(){
var conLength=;

对于(var i=1;i您不能同时检查这两个选项,也不能在代码中检查已检查的值。谢谢,我非常喜欢您的解决方案,尽管我遇到了问题,因为即使按钮被手动选中,相应的Div也不会显示,以下是需要显示/隐藏的Div代码:PSTN line?
id=“con1PSTN”/>不,哦,你假设是正确的!而且,如果你重复使用$con,那么就没有$con,总会有10个div来显示…+1,尽管如果你不使用
cons[j]会更好.onclick
。使用
addEventListener
@jrh-Nah,那么我也需要附加事件-onclick适用于我所知道的所有浏览器。@bitterss-如果它有效,请随意添加