本文目錄一覽:
- 1、php後台商品添加,需要兩個表單,一個用於提交上傳圖片,一個用於提交商品數據到數據庫。
- 2、php一個頁面怎麼實現兩個form
- 3、php同個頁面有多個form表單,怎麼讓多個form表單各不影響,就是提交後面的時候之前echo出來的信息不會沒
- 4、php,如果單個頁面上有多個form,提交時,如何區分啊。
- 5、PHP頁面跳轉的問題,兩個前台form表單數據,一個是判斷頁面,一個是註冊頁面,判斷才可以跳轉到註冊。
php後台商品添加,需要兩個表單,一個用於提交上傳圖片,一個用於提交商品數據到數據庫。
看你圖片上的表單設計,你都有“上傳”按鈕了,這就是等於已經把圖片上傳上去了(而此時表單的其他數據還沒有提交)
一般來說,PHP做商品添加,表單的其他數據和圖片的上傳都是一起來提交的,而如果你要檢查圖片是否上傳成功來決定是否提交其他表單數據的話,可以這樣設計:
一、你現在的這個表單不用改,只需要在最下面的那個“確定”按鈕上加個JS判斷,判斷一下上面的圖片是否上傳成功(如果圖片上傳這裡成功上傳了圖片,你返回一個圖片的保存路徑及圖片名稱到一個隱藏的文本框裡面,然後在“確定”按鈕的JS代碼里去取這個隱藏的文本框的值,如果有值就可以判定這個圖片是上傳成功的了,否則失敗則整個表單的數據都不能提交)
二、圖片上傳框這裡,確實因為表單不能嵌套,所以這個位置你就要採用一個iframe來加載另一個上傳圖片的頁面(這個上傳圖片的頁面代碼很簡單,就是那個圖片上傳框(當然你得加一些權限判斷不然就會是一個上傳漏洞了),然後寫相應的上傳代碼把圖片上傳上去最後返回上傳後的圖片路徑及文件名等信息,使用
parent.表單名.隱藏文本框名.value=’xxxx.jpg’
這個JS語句來實現把你上傳的圖片信息保存到你的隱藏文本框里。
上面這句parent…語句的詳解如下:
a.由於你的圖片上傳頁面是放在iframe里的,因此你要把iframe里的頁面的內容保存到上一層頁面(即你這個添加商品的頁面,也就是這個加了iframe代碼的頁面)
舉例個吧:
你添加商品的頁面文件名是a.php,在a.php的表單里你加了一個iframe src=”b.php”/iframe
這裡面的b.php就是你的上傳圖片的頁面(在b.php中就是你正常的上傳圖片的表單),另外你接收上傳及處理上傳的程序都是在這個iframe裡面完成的。。
這樣應該明白了吧。既然你的上傳後的返回值是在iframe里的頁面中的,那要想把它保存到a.php這個頁面的一個隱藏文本框里,就要使用parent了。。。
所以上面那個js語句是:parent.表單名….
b.這個js語句parent.表單名.隱藏文本框名.value=’xxx’中的“表單名”、“隱藏文本框名”,是指的a.php這個頁面的表單名哦。
比如你a.php的表單是form name=”addpro_form” method=”post”,那麼這個JS語句中的表單名也就是addpro_form。隱藏文本框同理。
這樣,你明白了吧?
我寫個簡單的實例你看看:
a.php的代碼:
form name=”addpro_form” method=”post” action=”a.php?act=save”
商品名稱:input type=”text” name=”pro_name” /br /
商品價格:input type=”text” name=”pro_price” /br /
商品圖片:input type=”hidden” name=”pro_img” /
iframe width=”500″ height=”50″ src=”b.php”/iframebr /
商品說明:textarea name=”pro_intro”/textareabr /
input type=”submit” value=”確定” /
/form
以上是a.php的代表,也就是整個表單,其中表單名是addpro_form,隱藏文本框名是pro_img。
接着寫b.php的:
form name=”upfile_form” method=”post” action=”upload.php” enctype=”multipart/form-data”
input type=”file” name=”upimages”input type=”submit” value=”上傳”
/form
b.php的頁面很簡單就是一個上傳表單而已
然後upload.php是用來接收上傳的圖片並返回值的:
?php
//以下是PHP上傳圖片的代碼(我就不寫了)
……
//假設上傳後得到圖片名稱
$imgname=”111.jpg”;
?
script type=”text/javascript”
window.onload=parent.addpro_form.pro_img.value=’?php echo $imgname; ?’;
/script
好了,upload.php的代碼也寫完了,上面一段php代碼是上傳圖片最後得到上傳後的圖片名稱,接着用一段js代碼把圖片名稱返回到上一頁去。
php一個頁面怎麼實現兩個form
兩個form肯定有兩個不同的按鈕
因為兩個按鈕不能同時按
所以提交後你可以根據按鈕不同的名字來判斷是哪個表單提交的
php同個頁面有多個form表單,怎麼讓多個form表單各不影響,就是提交後面的時候之前echo出來的信息不會沒
多個form怎麼了?每個form是獨立的,而且表單中action=””指向是不一樣的!
比方這種類型的!實際上action的指向都是指向不同的操作或者控制器!互不影響!
php,如果單個頁面上有多個form,提交時,如何區分啊。
…如果需要提交所有表單的話,為什麼不寫成一個表單… =w=… 還這麼麻煩幹嘛..
==================================================
好吧..可能有某種需求需要這樣….時間有限,給你解決思路
不用ajax….用javascript就行..
==================================================
假設頁面有form1, form2,form3 三個表單..
form1下的輸入框 name屬性都以 form1_ 開頭
form2下的輸入框 name屬性都以 form2_ 開頭
form3下的輸入框 name屬性都以 form3_ 開頭
form2有一個按鈕 name屬性為 form2_submit_all
解決過程:為form2_submit_all添加onclick事件,當點擊它時,把其他表單的下的所有標籤全部移動到form2里..然後通過javascript提交form2表單.
==============================================
非得用ajax的話,有點麻煩..
==============================================
當點擊一個按鈕時,將3個表單的input鍵值對分別設置成數組..
fom1: array(form1的表單項);
form2:array(form2的表單項);
form3:array(form3的表單項);
將他們設置為ajax的傳遞參數….
然後ajax返回action處理後的值..
你再用javascript將返回值顯示到頁面上…..
PHP頁面跳轉的問題,兩個前台form表單數據,一個是判斷頁面,一個是註冊頁面,判斷才可以跳轉到註冊。
通過 Cookie 傳遞就行,或者 SESSION,SESSION 更簡單,更安全,Cookie 可以被自動註冊機一類的程序進行自動化註冊,如果你這個推薦是有獎勵的,建議用 SESSION,確保你們不受損失。
if_form.php 裡面獲取推薦人及編碼:
// 頁面頭部盡量靠近開始處
session_start ();
// 你的處理代碼
$refer_man = $_POST [‘ref’];
$refer_code = $_POST [‘ref_code’];
然後存入 SESSION
$_SESSION [‘ref_info’] = “$refer_man,$refer_code”;
zhuce_form.php 裡面獲取推薦信息 SESSION,
// 頁面頭部盡量靠近開始處
session_start ();
// 檢測推薦SESSION是否存在
$refer_info = null;
if (! empty ( $_SESSION [‘ref_info’] )) {
$refer_info = explode ( ‘,’, $_SESSION [‘ref_info’] ); // [0] = 推薦人 [1] = 推薦碼
} else {
// 在這裡把非法訪問此頁面的傢伙打發走
header ( ‘Location: if.php’ );
exit ();
}
寫入數據庫之前再次檢測
if ($refer_info != null) {
// 寫入數據庫代碼
}
// 最後銷毀 SESSION
session_destroy ();
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293150.html