簡體   English   中英

如何在Codeigniter中以單個表單動作發布來自多個頁面的數據?

[英]How to post data from multiple pages in a single form action in codeigniter?

請考慮以下情形。

查看文件代碼

<form id="userProfileForm" action="<?php echo $_SESSION['base_url'];?>home/edit_user" method="post" enctype="multipart/form-data" class="Paragraph-Text">
    <label>Name:
        <input type="text" name="name">
    </label>
    <label>Password:
        <input type="password" name="password">
    </label>
    <label for="1" onclick="open_dialog();" class="custom-file-upload font-s-10">
        <i class="glyphicon glyphicon-upload"></i> UPLOAD FILE
    </label>
    <input type="submit">
</form>

腳本

<script>
    function open_dialog()
    {       
        $.ajax({
         type: "POST",
         url: "<?php echo site_url('home/upload_dialog');?>",
         data: {count:1},
         dataType: "html",
         success: 
              function(html){
                $('body').append(html);
                $('#child-overlay').animate({opacity: 1}, 400);
              }     
        });
    }
</script>

控制器home

function upload_dialog()
    {   
        $this->load->view('home/home-upload-dialog');
    }
function upload_area($count)
    {
        $data['count'] = $count;
        $data['accept_file_types']='gif|jpe?g|png|jpg|pdf|cr2|docx|avi|mp4';
        $this->load->view('home/upload-area' ,$data);
    }

查看home-upload-dialog

<div id="child-overlay-upload">
    <div id="popup">
        <div class="heading-area">
            <p class="heading">UPLOAD FILE</p>
            <span id="close"><img src='<?php echo image_url("icons/Cancel-icon.png")?>'></span>
        </div>
        <div id="popup-contents">
            <iframe id="upload-frame" frameborder="0" scrolling="no" height="200" width="100%" src="<?php echo site_url('home/upload_area/' . $_REQUEST['count']);?>"></iframe>
        </div>
    </div>
</div>

查看upload_area

<input type="hidden" name="file_name" value="someValue">

在這里,如何通過表單操作將數據(從輸入"name","password","file_name" )發布到控制器? 任何幫助,將不勝感激。 謝謝。

PS:請不要問我為什么要這樣做。

首先查看您的HTML,當用戶單擊“提交”按鈕時,將調用家庭控制器中的函數edit_user()

<form id="userProfileForm" action="<?php echo $_SESSION['base_url'];?>home/edit_user" method="post" enctype="multipart/form-data" class="Paragraph-Text">

因此,在主控制器中的edit_user()函數中,您將需要執行以下操作

edit_user() {
  $username = $_POST['name'];
  $password = $_POST['password'];
}

這樣只會讓您訪問名稱和密碼。 至於您嘗試上傳的文件,則在html中缺少<input> ,請參見下文。

<form id="userProfileForm" action="<?php echo $_SESSION['base_url'];?>home/edit_user" method="post" enctype="multipart/form-data" class="Paragraph-Text">
<label>Name:
    <input type="text" name="name">
</label>
<label>Password:
    <input type="password" name="password">
</label>
<label for="1" class="custom-file-upload font-s-10">
    <i class="glyphicon glyphicon-upload"></i> UPLOAD FILE
    <input type="file" name="filename">
</label>
<input type="submit">

使用該額外的輸入標簽,您將需要像這樣更改edit_user()函數

edit_user() {
  $username = $_POST['name'];
  $password = $_POST['password'];
  $filename = $_FILES['filename']['name'];
}

您可能需要花一點時間才能獲得使用該upload_dialog()函數所要查找的內容。 這是一些參考

暫無
暫無

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

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