如何讓text的值在按下buuton仍保留

edited 十月 2013 in PHP新手區
<html> 
<head>
<title>
PHP LEARN
</title>
</head> 
<body> <form action="index.php" method="post"> 
請輸入:<input type="text" name="input" >  
<input type="submit" value="送出" ><br /></form> 
<?php 
echo $_POST['input']; 
?>  
</body> 
</html>
我的code 如上
按下button 後 text會清空
請問如何讓text的值可以保留

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4320

評論

  • edited 七月 2009
    保留?? 你的意思是 輸入框裡面的字不會消失 還是 每次輸入的資料都會一筆一筆保留下來?
  • edited 七月 2009
    請輸入:<input type="text" name="input" value="
    <?php
    if(isset($_POST['input']))
    {
        echo $_POST['input'];
    }
    ?>
    "> 
    
  • edited 七月 2009
    1.輸入框裡面的字不會消失
    2.每次輸入的資料都會一筆一筆保留下來
    我想問的是1
    2.我會用+=的方法,但我沒實作 若大大有好的方法我兩種都想學 :-D
  • edited 七月 2009

    我是用FIREFOX測的
  • edited 七月 2009
    咦 我用ie 好像沒問題 text會留住


    一開始想好像不難 但一直失敗 結果程式碼就越變越長├148┤
    <html>  
    <head> 
    <title> 
    PHP LEARN 
    </title> 
    </head>  
    <body>
     <form action="a1.php" method="post"> <?php 
     if (!isset($_POST['h2'])){$_POST['h2']="";} 
     if (!isset($_POST['input'])){$_POST['input']="";}
     ?> 
    請輸入:<input type="text" name="input" >   
    <input type="submit" value="送出" "></br>
    <input type="hidden" name="h1" 
    value="<?php echo $_POST['input'];?>">
    <input type="hidden" name="h2"
    value="<?php echo $_POST['h2'].$_POST['input']."</br>"  ?>">
    </form>  
    <?php
    if (!isset($_POST['h2'])){$_POST['h2']="";}
    if (!isset($_POST['input'])){$_POST['input']="";}
    echo " Text:  ".$_POST['input']."</br></br></br></br>";
    echo $_POST['h2'];  
    ?>
     
    </body>  
    </html> 
    

    可以資料一筆一筆的留下來,但 打完發現 h1這隱藏欄位好像是多餘的
    刪掉 效果卻又不見了 怪哉 ├125┤
  • 280280
    edited 七月 2009
    這個可能你的問題或是觀念不太清楚的關係
    或是換另外一個角度問看看

    SoltyRain 大的程式並沒有問題
    而且不管 ie 或 firefox 應該結果都是一樣

    問題 : 輸入框裡面的字不會消失
    就你文字上與你寫的 程式 解讀是

    你有一個 input 的輸入物件
    有一個 送出(submit) 的按鈕物件

    submit 時,將值自己傳給自己 index.php 檔

    如果只是這樣的話
    就你一開始的程式

    既然你可以
    <?php
    echo $_POST;
    ?>
    顯示你 input 送來的值

    SoltyRain 大的程式,只不過是把顯示的值
    帶入 input 這個物件的 value 屬性(預設顯示值)內而已

    不應該不行,除非有其他的問題
    或是我們在講的是不同的事情

    至於你的問題 2 每次輸入的資料都會一筆一筆保留下來
    那就是要把值存到資料庫內
    要不然會很麻煩!!!
  • edited 七月 2009
    在ff(firefox)會掛掉可能是因為這段html不符合xhtml的規範吧
    ff對html的容錯性比ie差一點,那麼我們換一種寫法
    留住值的話寫入資料庫是一種方式,但如果這僅是要暫存,會比較適用session
    <?php
    session_start();//啟用session
    if(!isset($_SESSION['save']))//檢查sessino
    {
        $_SESSION['save']=array();//宣告一個session陣列備用
    }
    ?>
    <html>   
    <head>  
    <title>  
    PHP LEARN  
    </title>  
    </head>   
    <body> 
    <form action="a1.php" method="post"> 
    請輸入:
    <?php
    if(!empty($_POST['input']))
    {
        echo "<input type='text' name='input' value='{$_POST['input']}' \\/>";//讓php輸出完整的元件,並符合xhtml規範
         $_SESSION['save'][]=$_POST['input'];//把post來的資料丟給session陣列
    }
    else
    {
        echo "<input type='text' name='input' \\/>";//無值或無post時,不給與value屬性
    }
    ?>    
    <input type="submit" value="送出" />  
    </form>
    <br />  
    <?php 
    if(isset($_SESSION['save']) and is_array($_SESSION['save']))
    {
        $i=1;//初使化資料數
        $save_value;//宣告一變數給foreach使用
        foreach($_SESSION['save'] as $save_value)
        {
            echo $i.':'.$save_value.'<br \\/>';//取回存入的資料
             $i++;
        }
    }
    ?>   
    </body>   
    </html>
    
  • edited 七月 2009
    對不起 SoltyRain
    是我自己眼殘+腦殘
    請輸入:
    <input type="text" name="input" value=" 
    <?php if(isset($_POST['input'])) {     
    echo $_POST['input']; } ?> 
    ">
    
    我把他打成
    請輸入:
    <input type="text" name="input" value="">
    <?php if(isset($_POST['input'])) {     
    echo $_POST['input']; } ?> 
    
    SoltyRain的code在ff是可以work的
Sign In or Register to comment.