同时更新不同的表单

时间:2015-06-18 19:43:53

标签: php jquery

现状

所以,这是我之前的问题(Submit button to affect multiple files

中的后续问题

这种方法在如何点击"方面表现良好。通过使用"超级按钮"将多个按钮组合在一起(专利申请中)@oMiKeY。它完成它应该做的事情,点击所有按钮。

标记如下:

Title.php

data-ride="carousel"

Content.php

    <form role="form" method="post">                    
        <div class="edit_title">
             <input type="hidden" value="<?php echo $post_id; ?>">
             <?php post_input_box( $post_id, 'post_title', array( 'placeholder' => 'Article title..', 'value' => $post->post_title ) ); ?>
            <div class="update-button-wrap">
                 <input id="save_button" type="submit" name="update_product" value="<?php esc_attr_e( 'Update', 'site' ); ?>"/>
            </div>  
        </div>                  
    </form>

Article.php

 <form role="form" method="post">                   
        <div class="edit_content">
            <?php post_input_box( $post_id, 'post_content', array( 'placeholder' => 'Short description..', 'value' => $post->post_content ), 'textarea' ); ?>
        </div>
        <div class="update-button-wrap">
            <input id="save_button" type="submit" name="update_product" value="<?php esc_attr_e( 'Update', 'site' ); ?>"/>
        </div>                          
</form>

问题

所以,当&#34;提交&#34;单击按钮,每个<button type='button' onclick="$('[type="submit"]').click()">Submit</button> title.php中的按钮也被点击(即,关于点击按钮,它工作正常)。但是,因为同时单击了两个content.php,所以只有第二个forms被更新(内容或标题),而第一个被忽略,而这两个数据都需要更新。

我的方法

现在,我可以将两个文件合并在一起,并在单个表单中同时包含titlecontent,但这真的会让我的整体设置变得混乱,我听说有更多的小PHP文件会更好用于更新和速度比一个大的大文件。

或者这是我的另一种方法。

article.php,我会有formsubmit按钮,而title.phpcontent.php只有可编辑的表单。然后这两个表单以某种方式链接到article.php中的表单,如下图所示。

enter image description here

您认为可以实现第二种方法还是其他任何建议?

由于

1 个答案:

答案 0 :(得分:1)

只需在article.php上添加一个全局表单,然后删除标题和内容表单(以及提交按钮)。无论生成什么php文件,全局表单中的每个命名输入都将一起提交。

编辑: 的 Title.php

import numpy as np

n = 20
x = np.random.rand(n, n)

slice_list = [slice(k, l) for k in range(0, n) for l in range(k, n)]

results = [x[sl,sl] for sl in slice_list]

<强> Content.php

<div class="edit_title">
     <input type="hidden" value="<?php echo $post_id; ?>">
     <?php post_input_box( $post_id, 'post_title', array( 'placeholder' => 'Article title..', 'value' => $post->post_title ) ); ?>
</div>

<强> Article.php

<div class="edit_content">
    <?php post_input_box( $post_id, 'post_content', array( 'placeholder' => 'Short description..', 'value' => $post->post_content ), 'textarea' ); ?>
</div>

选项2: 或者,您可以使用某种功能,只允许您创建一次表单,即使您有&#34;内部表单&#34;。这样,Title.php和Content.php也可以作为独立的代码片段工作。

<form role="form" method="post">
<?php include "Title.php"; include "Content.php"; ?>
<button type='submit'>Submit</button>
</form>

<强> Title.php

$formDeep = 0;
function openForm() {
    global $formDeep;
    if ($formDeep == 0) {
        echo "<form role=\"form\" method=\"post\">";
    }
    $formDeep++;
}

function closeForm() {
    global $formDeep;
    $formDeep--;
    if ($formDeep == 0) {
        echo "</form>";
    }
}

<强> Content.php

<?php openForm(); ?>
<div class="edit_title">
     <input type="hidden" value="<?php echo $post_id; ?>">
     <?php post_input_box( $post_id, 'post_title', array( 'placeholder' => 'Article title..', 'value' => $post->post_title ) ); ?>
</div>
<?php closeForm(); ?>

<强> Article.php

<?php openForm(); ?>
<div class="edit_content">
    <?php post_input_box( $post_id, 'post_content', array( 'placeholder' => 'Short description..', 'value' => $post->post_content ), 'textarea' ); ?>
</div>
<?php closeForm(); ?>