3 回答

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
有如下幾個(gè)建議,把下拉框和單選按扭在后臺(tái)做成單行文本,這樣的話不管你提交的是下拉框或是單選,都可以有效的接收它的值。如果后臺(tái)就做成單選或下拉,如果改了默認(rèn)值,提交的表單值跟后臺(tái)默認(rèn)值對(duì)不上的話就會(huì)出現(xiàn)提交不成功的情況,就是前臺(tái)提交的時(shí)候選擇了,但后臺(tái)看不到數(shù)據(jù)。若是做成單行文本,提交的值就會(huì)以文本的形式寫(xiě)入到后臺(tái),表單修改值也更加顯得方便了。
提交之后會(huì)顯示織夢(mèng)的默認(rèn)提示信息“友情提示”幾秒過(guò)后就自動(dòng)轉(zhuǎn)到首頁(yè)。如何才能讓提交的信息停留,并讓用戶確認(rèn)所提交的信息。
我想了如下方式。給diy.php里提交成功后輸入固定值而不是自帶的跳轉(zhuǎn)方法。如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | if ( $action == 'post' ) { if ( empty ( $do )) { $postform = $diy ->getForm(true); include DEDEROOT. "/templets/plus/{$diy->postTemplate}" ; exit (); } elseif ( $do == 2) { $dede_fields = empty ( $dede_fields ) ? '' : trim( $dede_fields ); $dede_fieldshash = empty ( $dede_fieldshash ) ? '' : trim( $dede_fieldshash ); if (! empty ( $dede_fields )) { if ( $dede_fieldshash != md5( $dede_fields . $cfg_cookie_encode )) { showMsg( '數(shù)據(jù)校驗(yàn)不對(duì),程序返回' , '-1' ); exit (); } } $diyform = $dsql ->getOne( "select * from osen_diyforms where diyid='$diyid' " ); if (! is_array ( $diyform )) { showmsg( '自定義表單不存在' , '-1' ); exit (); } $addvar = $addvalue = '' ; if (! empty ( $dede_fields )) { $fieldarr = explode ( ';' , $dede_fields ); if ( is_array ( $fieldarr )) { foreach ( $fieldarr as $field ) { if ( $field == '' ) continue ; $fieldinfo = explode ( ',' , $field ); if ( $fieldinfo [1] == 'textdata' ) { ${ $fieldinfo [0]} = FilterSearch( stripslashes (${ $fieldinfo [0]})); ${ $fieldinfo [0]} = addslashes (${ $fieldinfo [0]}); } else { ${ $fieldinfo [0]} = GetFieldValue(${ $fieldinfo [0]}, $fieldinfo [1],0, 'add' , '' , 'diy' , $fieldinfo [0]); } $addvar .= ', `' . $fieldinfo [0]. '`' ; $addvalue .= ", '" .${ $fieldinfo [0]}. "'" ; } } } $query = "insert into `{$diy->table}` (`id`, `ifcheck` $addvar) values (NULL, 0 $addvalue); " ; if ( $dsql ->executenonequery( $query )) { $id = $dsql ->GetLastID(); if ( $diy -> public == 2) { //diy.php?action=view&diyid={$diy->diyid}&id=$id $goto = "diy.php?action=list&diyid={$diy->diyid}" ; $bkmsg = '發(fā)布成功,現(xiàn)在轉(zhuǎn)向表單列表頁(yè)...' ; } else { $goto = ! empty ( $cfg_cmspath ) ? $cfg_cmspath : '/' ; $bkmsg = '發(fā)布成功,請(qǐng)等待管理員處理...' ; } echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns= "http://www.w3.org/1999/xhtml" > <head> <meta http-equiv= "Content-Type" content= "text/html; charset=gb2312" /> <title>訂單核對(duì) </title> <link href= "/img_cnosn/css_end.css" rel= "stylesheet" type= "text/css" /> </head> <body> <div id= "ctent" > <h1>您已成功提交訂單,請(qǐng)仔細(xì)核對(duì)你的信息!</h1> <ul> <script language= "javascript" > function ReplaceAll(str,sptr,sptr1) { while (str.indexOf(sptr) >= 0) { str = str.replace(sptr, sptr1); } return str; } descria= ",您的姓名:,聯(lián)系電話:,送貨地址:,購(gòu)買(mǎi)產(chǎn)品:,支付方式:,訂貨留言:,b" ; var descri= new Array(); descri=descria.split( "," ); str= "'.$addvalue.'" ; str=ReplaceAll(str, "\'" , "" ); var strarray= new Array(); strarray=str.split( "," ) ; for (i=0;i<7;i++){ document.write( "<li>" +descri[i]+strarray[i]+ "</li>" ); } </script> </ul> <div class = "info" >友情提示:您的訂單已提交成功,我們的客服會(huì)盡快與你取得聯(lián)系 <a href= "#" onclick= "window.operner = null;window.open(\'\',\'_self\');window.close();" >確認(rèn)并關(guān)閉</a> 或 <a href= "#" onclick= "window.operner = null;window.open(\'\',\'_self\');window.close();" >返回修改</a></div> </div> </body> </html> '; } } } |
以上是代碼。這樣就是固定提取前幾個(gè)表單信息給用戶確認(rèn),不過(guò)在后臺(tái)增加表單的時(shí)候一定要統(tǒng)一按以上數(shù)組的順序進(jìn)行添加字段。這樣才能對(duì)應(yīng)。
有一個(gè)不好的地方是,這個(gè)文件只要一改就是針對(duì)所有的表單提交,不過(guò)這只是一個(gè)方法,供參考,最終還得靈活應(yīng)用。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
1 2 3 4 5 | {dede:sql sql="select sum(*) as s from dede_diyform1"} [field:s /] {/dede:sql}
<!--dede_diyform1換成你的自定義表單存儲(chǔ)的表名。-> |
添加回答
舉報(bào)