2015-04-23 71 views
2

我正在使用php。 有兩個輸入,aa和bb。 aa是用戶可以輸入內容的文本輸入,並且我希望bb(這是一個隱藏的輸入)以aa的輸入值提交。 我試過這個,但是,當提交表單時,似乎aa_value在輸入bb中爲空。如何實現?在隱藏輸入中,如何在另一個輸入中獲取輸入文本值?

aa_value() { 

       $value = ''; 
       if (isset($_POST['aa'])) 
         $value = $_POST['aa']; 
       echo $value; 

} 

<input type="text" name="aa" id="aa" value="<?php aa_value(); ?> 

<input type="hidden" name="bb" id="bb" value="<?php aa_value(); ?> 
+2

PHP在輸出前執行。因此,除非在表單被加載之前'aa_value()'已經有了一個值,否則你的隱藏輸入永遠不會有值。 – icecub

+1

或者更容易解釋:在提交表單之前,您無法調用PHP函數。改爲使用Javascript函數,或者直接刪除隱藏的輸入,並在後端的2個獨立變量中保存'$ _POST ['aa']',因爲它們無論如何都是相同的。 – icecub

+0

看起來很合理,但是,爲什麼aa沒有問題? – wenlujon

回答

0

PHP是服務器端的語言,所以它會執行之前呈現在瀏覽器的HTML。 您需要使用javascript或jquery來解決問題。 使用下面的代碼模糊或更改。

<input type="text" name="aa" id="aa" value="<?php aa_value(); ?> 

<input type="hidden" name="bb" id="bb" value="<?php aa_value(); ?> 

<script> 
$(document).ready(function() 
{ 
$('#aa').blur(function() 
{ 
$('#bb').val($('#aa').val()); 
}); 

}); 
</script> 

在submition表單後,您可以獲得aa和bb值。

+0

這是正確的想法,但錯誤的事件。改用'input'事件。 – robbmj

+0

你的意思是改變$('#aa')。blur(function()to $('#aa')。input(function()? – wenlujon

+0

剛剛試過了,它沒有工作 – wenlujon

0

這是測試和工程完美的罰款。如果你想看到神奇的工作,將隱藏的文本字段更改爲正常的:

<?php 

if(isset($_POST["aa"]) && !empty($_POST["aa"])){ 
    $value = $_POST["aa"]; 
} else { 
    $value = ""; 
} 

?> 

<!DOCTYPE HTML> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Example</title> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
     <script> 
     $(document).ready(function(){ 
      $(document).on("change keyup mouseup", "#aa", function(){ 
       $("#bb").val($("#aa").val()); 
      }); 
     }); 
     </script> 
    </head> 
    <body> 
     <input type="text" name="aa" id="aa" value="<?php echo $value; ?>" /> 
     <input type="hidden" name="bb" id="bb" value="<?php echo $value; ?>" /> 
    </body> 
</html> 
+0

非常感謝!它應該工作 – wenlujon

+0

@wenlujon如果您的問題得到解答,請標記正確的答案,所以問題不永遠保持開放,這也是向那些花時間幫助你的人表示感謝的方式。 – icecub

相關問題