Javascript 通过post通过PHP表单持久化动态生成的html

Javascript 通过post通过PHP表单持久化动态生成的html,javascript,php,html,wordpress,dynamically-generated,Javascript,Php,Html,Wordpress,Dynamically Generated,当应用程序启动时,默认情况下,动态表内部没有或。 我正在使用javascript从客户端将表行添加/删除到p_scents。这在客户端非常有效。 我试图循环遍历元素,并将数据收集到一个数组中,以便在PHP中进行处理。 当我提交表单时,HTML回到默认状态,在p_scents中没有数据,我无法获取数据 有没有办法让我用javascript创建的HTML元素/值持久化到服务器端?我不一定需要保留HTML,但我需要post中的值 如果您需要任何额外的解释/代码,我可以提供尽可能多的,请让我知道。我尝试

当应用程序启动时,默认情况下,
动态表内部没有
。 我正在使用javascript从客户端将表行添加/删除到
p_scents
。这在客户端非常有效。 我试图循环遍历元素,并将数据收集到一个数组中,以便在PHP中进行处理。 当我提交表单时,HTML回到默认状态,在
p_scents
中没有数据,我无法获取数据

有没有办法让我用javascript创建的HTML元素/值持久化到服务器端?我不一定需要保留HTML,但我需要post中的值

如果您需要任何额外的解释/代码,我可以提供尽可能多的,请让我知道。我尝试过$u POST方法,但代码根本不存在。你知道我在这种情况下应该怎么做吗

客户端表单:

<form method="post" action="<?php echo  htmlspecialchars('?page_id=133');?>" enctype="multipart/form-data" >
<table class="dynatable">
    <thead>
        <tr>
            <th>Time</th>
            <th>Description</th>
        </tr>
    </thead>
    <tbody id="p_scents">
        <tr><td><input type="text" name="ts_value" class="timestamp_input"/></td><td><TEXTAREA NAME="ts_description" rows="3" cols="30"  style="resize:none;" ></TEXTAREA></td><td><a href="#" id="remScnt">Remove</a></td></tr>
        <tr><td><input type="text" name="ts_value" class="timestamp_input"/></td><td><TEXTAREA NAME="ts_description" rows="3" cols="30"  style="resize:none;" ></TEXTAREA></td><td><a href="#" id="remScnt">Remove</a></td></tr>
    </tbody>
</table>
</form>
<form method="post" action="<?php echo  htmlspecialchars('?page_id=133');?>" enctype="multipart/form-data" >
<table class="dynatable">
    <thead>
        <tr>
            <th>Time</th>
            <th>Description</th>
        </tr>
    </thead>
    <tbody id="p_scents">

    </tbody>
</table>
</form>

然而,正如评论中所建议的,这是ajax的一个有力例子,它不是唯一的解决方案

首先,您需要给出表单元素数组语法名称,例如:

<tr><td><input type="text" name="ts_value[]" class="timestamp_input"/></td><td><TEXTAREA NAME="ts_description[]" rows="3" cols="30"  style="resize:none;" ></TEXTAREA></td><td><a href="#" class="remScnt">Remove</a></td></tr>
<tr><td><input type="text" name="ts_value[]" class="timestamp_input"/></td><td><TEXTAREA NAME="ts_description[]" rows="3" cols="30"  style="resize:none;" ></TEXTAREA></td><td><a href="#" class="remScnt">Remove</a></td></tr>
重建表单只需迭代值:

<?php 

if($_SERVER['REQUEST_METHOD']=='POST' && isset($_POST['ts_value']) && isset($_POST['ts_description'])):

    for($i=0;$i<count($_POST['ts_value']);$i++;):?>

        <tr><td><input type="text" name="ts_value[]" class="timestamp_input" value="<?php echo $_POST['ts_value'][$i];?>" /></td>
        <td><TEXTAREA NAME="ts_description[]" rows="3" cols="30"  style="resize:none;" ><?php echo $_POST['ts_description'][$i];?></TEXTAREA></td><td><a href="#" class="remScnt">Remove</a></td></tr>


    <?php endfor;
endif; ?>

如果返回到同一页面,则应使用AJAX来提交表单,这样您就永远不会失去状态。
<?php 

if($_SERVER['REQUEST_METHOD']=='POST' && isset($_POST['ts_value']) && isset($_POST['ts_description'])):

    for($i=0;$i<count($_POST['ts_value']);$i++;):?>

        <tr><td><input type="text" name="ts_value[]" class="timestamp_input" value="<?php echo $_POST['ts_value'][$i];?>" /></td>
        <td><TEXTAREA NAME="ts_description[]" rows="3" cols="30"  style="resize:none;" ><?php echo $_POST['ts_description'][$i];?></TEXTAREA></td><td><a href="#" class="remScnt">Remove</a></td></tr>


    <?php endfor;
endif; ?>