第1步:我有一个表单,其中输入字段将由innerHTML动态生成。
var d = document.getElementById("d1p_1");
d.innerHTML += "<input class='add' name='field_" + i + "' type='text'>";
第2步:现在我想将每个值的php变量回显给每个动态生成的输入字段。类似的东西:
d.innerHTML += "<input class='add' name='field_" + i + "' type='text' value='"<?php echo $field_" + i + "; ?>" + "'>
我怎么能达到这个目的?
提前致谢。
提供进一步资料:
这是一个用户可以添加字段的表单,具体取决于他需要和将要添加的字段数。现在可能是用户添加了比他通常需要的更多的字段,并在field_1和field_280之间的某处输入数据。为了捕获他输入数据的field_x,我需要回显该输入字段的值。
$field_1 = value of field_1 if given;
...
$field_280 = value of field_280 if given;
innerHTML将通过i
的计数器动态添加输入字段。所以我不知道在哪个领域会给出什么输入。这就是为什么我需要动态生成PHP回声部分。像:
<?php echo $field_" + i + "; ?>
整个过程:
表格 - &gt;首先只包含一个输入字段(用户将进行一些输入) - &gt;通过单击按钮,将添加更多输入字段(1个单击1个字段,用户无需填写数据,然后才能添加其他字段) - &gt;现在想象用户将添加3个字段并在第一和第三输入字段上给出输入 - &gt; name =“field_1”和name =“field_3” - &gt;
每个输入字段的名称由i++
生成 - &gt;该值为空,否则将发布表单 - &gt;现在用户将提交表单。
这意味着echo的值为$field_3 = (isset($_POST['field_3'])) ? $_POST['field_3']; : '';
- &gt;这个变量对于所有i
都存在,因此每个变量都在BUT之前设置在php部分中,以便用name="field_i"
捕获正确的输入$field_i
并且回显这个匹配就是问题。
因此,通过单击提交,页面将被重新加载,而不是只有一个输入字段,就像之前一样,将有2个输入字段。首先是name =“field_1”,第二个是name =“field_3”,因为用户之前省略了输入名称=“field_2”。因此,name =“field_3”需要根据动态生成的name="field_"+ i +"
来回显正确的值,这意味着当动态生成名称标记时,还需要动态生成php标记以相互匹配。
答案 0 :(得分:1)
我是一个JavaScript变量,因此将其包含在php声明中会给你带来问题
您可以使用php代码实现字符串连接,如下所示
<?php
$field_="stavo";
?>
<script type="text/javascript">
var i=10;
var d = document.getElementById("d1p_1");
d.innerHTML+= "<input class='add' name='field_" + i + "' type='text'>";
d.innerHTML += "<input class='add' name='field_" + i + "' type='text' value='<?php echo $field_; ?>"+i+"'>";
</script>
当然你必须在你的Html中有这个
<div id="d1p_1"></div>