将会话中存储的值传递给联系表7中的输入字段

时间:2019-01-06 18:58:22

标签: php wordpress

我正在处理上载联系表单7。客户可以保存他的输入归档表单过程,并在需要填写相同字段时上载。

我能够将表单输入值保存在.dat文件中。现在,在表单页面上载时,我将该字段存储在会话中。我遇到的麻烦是如何将会话值传递给表单输入。

例如,我创建了以下代码:

if(!empty($_SESSION['uploaded_file_data']) && is_array($_SESSION['uploaded_file_data'])){
    foreach ($_SESSION['uploaded_file_data'] as $key => $value){
        $_POST[$key] = $value;
    }

    unset($_SESSION['uploaded_file_data']);
}

其中$ _SESSION ['uploaded_file_data']个数据带有

var_dump($ _ SESSION ['uploaded_file_data'])

看起来像这样:

array (
'_wpcf7' => '2899',
'_wpcf7_version' => '5.0.5',
'_wpcf7_locale' => 'en_US',
'_wpcf7_unit_tag' => 'wpcf7-f2899-o1',
'_wpcf7_container_post' => '0',
'_wpcf7cf_hidden_group_fields' => '[]',
'_wpcf7cf_hidden_groups' => '[]',
'_wpcf7cf_visible_groups' => '[]',
'_wpcf7cf_options' => '{"form_id":2899,"conditions":[],"settings":false}',
'gender' => 'Mr.',
'full_name_signatory_person' => 'Test Name',
'id_number_signature' => '1231111',
'company_name_signature' => 'Test Company',
'country_of_registration' => 'Test Country',
'registration_or_vat_number' => '23-886-BO',
'company_main_full_address' => 'Test Address',
'date' => '03 01 2019',
'gender2' => 'Mr.', ...

,依此类推。因此结果很好,只需要帮助弄清楚为什么$ _POST [$ key] = $ value不会在输入字段中添加值。我想念什么?

2 个答案:

答案 0 :(得分:1)

请考虑使用此解决方案

<?php $full_name_signatory_person = filter_input(INPUT_POST, 'full_name_signatory_person', FILTER_SANITIZE_MAGIC_QUOTES); ?>

$('[name="full_name_signatory_person"]').val("<?= $full_name_signatory_person ?>");

访问超全局变量-不是很好的做法,请改用filter_input防止XSS atack。

When to use filter_input()

答案 1 :(得分:0)

通过使用jQuery + php设置输入字段值来解决。 例如:

$('[name="full_name_signatory_person"]').val("<?= $_POST['full_name_signatory_person'] ?>"); 

对此解决方案不感到骄傲,但是我找不到更好的方法。