Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php html表单的动态子字段_Php_Html - Fatal编程技术网

Php html表单的动态子字段

Php html表单的动态子字段,php,html,Php,Html,我是一名web开发新手,正在尝试创建一个html表单,该表单将根据先前的选择动态生成一个子字段。例如,使用下面的代码段,如果用户选择“每个中心”,则表单将为中心的值提供另一个子字段。同样,对于“每个客户端”,提供选项。但是,Global不需要或没有任何子字段 <!DOCTYPE html> <html> <body> <form action="process.php" method="post"> <fieldset>

我是一名web开发新手,正在尝试创建一个html表单,该表单将根据先前的选择动态生成一个子字段。例如,使用下面的代码段,如果用户选择“每个中心”,则表单将为中心的值提供另一个子字段。同样,对于“每个客户端”,提供选项。但是,Global不需要或没有任何子字段

<!DOCTYPE html>
<html>
    <body>
<form action="process.php" method="post"> 
    <fieldset>
      <b>Analysis Level</b>
      <select name="level"> 
        <option>Global</option>
        <option>Per Center</option>
        <option>Per Client</option>
      </select></br></br>

分析水平
全球的
每中心
每位客户



如果有人能为我指引正确的方向,我将不胜感激。谢谢。

你必须用Javascript来完成。从长远来看,最简单的方法是使用jQuery之类的东西

你可以用一种更简单的方法,这一次,用这样的方法:

  <b>Analysis Level</b>
  <select name="level" onchange="didChangeLevel(this);"> 
    <option value="global">Global</option>
    <option value="center">Per Center</option>
    <option value="client">Per Client</option>
  </select></br></br>
  <b><span id="label"></span></b>
  <input type="text" id="extrafld" name="extra" style="display: none;" />
分析级别
全球的
每中心
每位客户


从视觉上看,它与以前大致相同。但现在每次更改select时,都会调用一个函数。您可以这样编写函数:

  <b>Analysis Level</b>
  <select name="level" onchange="didChangeLevel(this);"> 
    <option value="global">Global</option>
    <option value="center">Per Center</option>
    <option value="client">Per Client</option>
  </select></br></br>
  <b><span id="label"></span></b>
  <input type="text" id="extrafld" name="extra" style="display: none;" />
  • 恰当地
  • 设置标签

    didChangeLevel(组合){ var value=combo.options[combo.selectedIndex].value; var field=document.getElementById('extrafld') var label=document.getElementById('label'); 开关(值){ “全球”案例: field.style.display='none'; 打破 案例“中心”: label.innerHTML='中心名称:'; field.style.display='block'; 打破 “客户”案例: label.innerHTML='客户端名称:'; field.style.display='block'; 打破 } 返回; }


当您收到表单PHP端时,只需检查select的值。如果不是“全局”,请查找
$\u POST['extra']
以包含额外字段值。

希望这是朝着正确方向迈出的一步


如果你想做这个活(而不是刷新页面),你需要看看Javascript。谢谢Lewis,这是一个好的开始。我将上面的脚本复制到一个java脚本中,并将其从html正文中调用为。但是,它并没有按预期工作。一旦我打开html,中心和客户端子字段就已经存在(作为静态字段),而不是在选择适当的父字段后出现。如果我在复制js时遗漏了什么,有什么建议吗?再次感谢。