簡體   English   中英

將會話中存儲的值傳遞到聯系表單 7 中的輸入字段

[英]Pass values stored in session to an input field in contact form 7

我正在處理上傳聯系表單 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, 沒有向輸入字段添加值。 我錯過了什么?

通過使用jQuery+php設置輸入字段值解決。 例如:

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

對這個解決方案並不感到自豪,但我找不到更好的方法。

請考慮使用此改進您的解決方案

<?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 攻擊。

何時使用 filter_input()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM