2012-05-19 251 views
0

請參閱下面的代碼。目標如下。當用戶按下按鈕時,應執行功能main.php。一旦完成,DIV opt_container的內容應通過運行功能ganttchart.php填寫。確實我不知道如何:填充DIV容器

  1. 執行ganttchart.php之後main.php之後。從form運行main.php

由於我是PHP新手,任何建議都會對我很有幫助。

<div id="fragment-2"> 
    <table width="100%"> 
     <tr> 
      <td width="100%"> 
       <form name="optform" method="post" action=""> 
        <div class="buttons"> 
         <a href="" class="regular" onclick="click_function();return false;"> 
         <img src="images/opt.png" alt=""/> Run optimizaton 
         </a> 
        </div> 
       </form> 
      </td> 
     </tr> 
    </table> 
</div> 

<div id="opt_container"> 

</div> 

<script language="javascript"> 
function click_function() { 
    $('#opt_container').load('optim/mainOptim.php'); 
} 
</script> 

回答

2

你想做的事情不能在PHP中完成。 PHP腳本在遠程服務器上執行,這意味着需要調用一個請求以便PHP返回一些內容。用戶在他的本地(客戶端)機器上進行操作。

onclick是執行javascript代碼的處理程序,而不是php。您需要創建javascript函數,對您想要執行的php代碼執行ajax請求,然後將響應放在html文檔中。但是迴應應該已經由ganttchart.php做了什麼。

+0

請問您可以發佈一些網頁鏈接的例子嗎? –

+0

http://www.howtoplaza.com/how-to-make-ajax-calls-with-jquery http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make- ajax-calls-with-jquery/ 並查看google的其他結果:https://www.google.pl/search?sourceid=chrome&client=ubuntu&channel=cs&ie=UTF-8&q=how+to+make+ajax+call + with + jquery – Zefiryn

+0

請查看更新的主題。我期待'main.php'的內容在DIV opt_container中顯示,儘管它不能以這種方式工作。什麼可能是錯的? –

1

您不向<form>發佈任何數據到服務器端。將這些GWT參數設爲您的<img src=""/>會更簡單。現在無需發佈表單。

例如:

<div class="scrollbar" id="chart"> 
    <img src="ganttchart.php?param1=foo&param2=bar"> 
</div> 

否則,你需要以下流程。 Google上可以找到各個步驟的大量示例。

  1. 加載主機網頁。
  2. 讓用戶XHR獲得run.php所需的參數,並將你的calc計算到你的服務器(在主機頁面使用一些JS)。
  3. 將''設置爲所需圖像的所需ganttchart.php請求。您可能需要一個'id'來標識(2)中的交易。即ganttchart.php?id = 123(在主機頁面使用一些JS完成)
+0

難道我理解正確的話,你認爲「參數1 =富&參數2 =欄」可能是我的職責「main.php」的輸出?如果這是正確的,那麼這不是我所需要的。 'main.php'將一些數據存儲在數據庫中,'ganttchart.php'使用DB數據創建圖表。 –

+0

參數應該是函數的輸入。爲什麼不結合run.php和ganttchart.php?不需要額外的電話或數據庫和表單帖子來回傳遞數據。如果您必須使用數據庫執行此操作,請使用AJAX請求發送數據,而不是使用表單POST。 –

1

首先,如果你想讓PHP運行某些你可以訪問它的文件,將它包含在你的文件中,或通過XHR請求它。

就你而言,你希望你的main.php文件在用戶按下按鈕時執行。這就是說,你可以使用ff。代碼作爲基礎:

<!-- 
note: This code is just an example, 
     your code may vary to according 
     to your requirements. 
--> 

<form action="" method="get"> 

    <input type="hidden" name="run_main_function" value="yes"/> 

    <input type="submit" /> 

</form> 

<?php 

if(isset($_GET['run_main_function'])): 

    require_once 'path/to/your/main.php'; 

    /* execute something from your main.php */ 

    require_once 'path/to/your/ganttchart.php'; 

    /* execute some functions in your ganttchart.php */ 

    $result = function_from_ganttchart(); 

?> 

<div id="opt_container"> 

     <table width="100%"> 

      <tr> 

       <td width="100%"> 

        <div class="scrollbar" id="chart"> 

         <img src="<?php echo $result; ?>"> 

        </div> 

       </td> 

      </tr> 

</div 
</php 
    endif; 
?> 

或者您可以通過XHR向JavaScript請求您的甘特圖的內容。

謝謝:)

+0

我試過你的例子。查看更新的主題。不知道爲什麼,但是當我點擊按鈕時,它會將我重定向到index.php頁面... –

+0

我的問題是,您的ganttchart.php如何生成圖像文件?通過$ _GET請求變量或$ _POST等?我不確定。謝謝 –

+0

[不知道爲什麼,但是當我點擊按鈕,它將我重定向到index.php頁面] - 奇怪,除非你通過index.php作爲控制器加載不同的模塊。 –