2013-04-03 149 views
0

我試過四處尋找答案,但我似乎無法找到它。將PHP輸出寫入文本域

我有一個數據庫,它需要兩個信息並返回成功或不成功。

我希望能夠按下「提交」按鈕,然後運行我的PHP查詢(這很好),一旦它完成後將回顯打印到文本框中。

echo '<form name="enrolled" method="post" action="<MY FUNCTION HERE>"><select name="course">'; 

一旦我的功能完成,它會迴應一些東西。我想要回顯的文本框顯示。

我一直有的問題是,它不是實時工作,我可以很容易地得到一個回顯在文本框上顯示,但我不能讓它保持空白,然後一旦函數完成,填充框。

感謝您抽出時間來閱讀。

+4

試一試你需要做的任何事情。或刷新頁面。 – 2013-04-03 21:11:18

回答

0

正如nathan說你似乎對php作品有點困惑。它會編寫HTML(或其他東西),它將被髮送到瀏覽器並呈現它。直到您發送另一個請求回到服務器,PHP閒置。如果你不想從當前頁面轉換,但更新它的內容,那麼你需要創建JavaScript,當觸發時向服務器發出請求(並在服務器響應時採取適當的操作)。

如果Google for PHP Ajax tutorial你會發現很多的例子。

0

完全不優雅,但只是呼應了整場...

echo "<input type='text' name='something' value='the value you want to echo'>"; 

不是真的知道你正試圖在你的PHP做。

0

兩個這樣做的方法:

通過郵寄和刷新:

表單,你是這樣的 的script.php

<?php 
    $result = "Hello world!"; //Do your logic anywhere but be sure to set the result here 
?> 
<form method="post" action="script.php"> 
.... 
<input type="text" value="<?= $result?>" readOnly> 
<input type="submit"> 
</form> 

的另一種方式是通過AJAX ,將採取更多的研究。試試這個,它簡單得多!

+0

你完全正確的道路,但是,「hello world」是寫入文本框中的loadup,有無論如何保持文本框爲空,當你點擊「提交」,你好世界寫入框? – 2013-04-03 21:25:44

+0

是的。 isset($ _ POST)? $ result =「」:$ result =「Hello world!」; – Magus 2013-04-03 21:29:21

+0

好的,謝謝,我現在想測試它,無論如何,我可以通過按下提交和行動後顯示的「hello world」來測試它,因爲此刻,我需要創建我的php腳本。 – 2013-04-03 21:45:31

0

您需要使用AJAX發佈您的表單,然後在框中顯示結果。用jQuery庫很容易完成。包括jQuery庫只是添加到您的HTML頭

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 

然後你可以使用這個腳本

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#myform").submit(function() {  
      $.post(
      'post.php', 
      $(this).serialize(), 
      function(data){ 
       $("#result").html(data) 
      } 
     ); 
      return false; 
     }); 
    }); 

post.php中提交您的形式,您呼叫的腳本的名稱將收到表格並返回答案。 myform是窗體的ID,result是要顯示結果的框的ID。

0

您正在考慮錯誤的PHP方法; PHP不直接與Web瀏覽器交互。你需要的是AJAX。這裏的原因:

  1. 客戶端(網頁瀏覽器)發送到Web服務器(Apache時,lighttpd的,等等)
  2. Web服務器解釋這一請求,並(在這種情況下)的請求,將它交給PHP
  3. PHP呼應基於web服務器提供給它的輸入結果
  4. Web服務器發送一個結果返回給Web瀏覽器
  5. Web瀏覽器決定如何處理這些信息
做0

現在,如果這是您導航到網頁,則Web瀏覽器將呈現您的Web服務器(使用PHP生成它)生成的內容。如果Web服務器已經響應,就是這樣 - 你已經得到了你的迴應。爲了獲得更多的信息,你將不得不作出一個新的請求,這意味着你必須做這兩件事情(通常)之一:

  • 導航在瀏覽器中提交一個表單,重裝,導航到新頁面等
  • 使用JavaScript(這是由客戶端,而不是服務器執行)做一個「背景」的要求

使用JavaScript,使「在後臺」的請求的技術和更新頁面而不重新加載被稱爲AJAX,並且有許多方法可以完成任務,但是到目前爲止最簡單和最流行的方法是使用JQuery library,這是一個有用的功能和Javascript的補充,使它不那麼痛苦(甚至愉快!)的工作,包括a simple function for making AJAX requests using the POST method美好的工具包。

關於這個問題有很多需要學習的內容,但是希望這會讓你對你完成這項任務所需知道的知識有足夠的瞭解。