innerHTML

时间:2016-04-10 16:14:36

标签: javascript php jquery

第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标记以相互匹配。

1 个答案:

答案 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>