2012-08-14 82 views
4

我有一個從mysql生成表格的網頁。我在每一行的開頭都有一個按鈕。我希望如此,如果用戶決定按下按鈕,那個單獨行的內容將寫入MySQL中的新表。運行php腳本而不改變當前頁面的按鈕

目前我正在考慮將按鈕作爲連接到mysql並將行插入到表中的另一個php腳本的href;不過,我認爲這會重定向我目前的頁面。

我想按鈕來運行腳本,而不重定向我的當前頁面。這樣,用戶可以繼續分析表格,而不必每次都重新加載頁面。

這就是我目前的表。這僅僅是一個片段,而該表可能非常大(數百行) enter image description here

+3

我們稱之爲「AJAX」。只有沒有人再使用XML。 – 2012-08-14 18:13:16

+0

雖然它真的是JavaScript嗎?我不需要在客戶端改變任何東西,只是我假設來自PHP的mysql的後端表。 – 2012-08-14 18:19:08

+0

看到第一個「A」?這就是重中之重。 – 2012-08-14 18:19:42

回答

8

爲了做到這一點客戶端,有一對夫婦的方式我能想到手工做的:

的Javascript

可以包括Javascript庫(如日益流行的jQuery庫),或代碼它自己,但是你可以實現這個作爲一個XMLHttpRequest,從按鈕的點擊處理程序發出的。使用圖書館將是最簡單的方法。

一個iframe

創建一個隱藏的iframe:

<iframe style="display:none;" name="target"></iframe> 

然後,只需設置你的標籤的目標是IFRAME:

<a href="your_script.php" target="target">...</a> 

只要有人點擊鏈接,該頁面將被加載到隱藏的iframe中。用戶不會看到任何改變,但您的PHP腳本將被處理。

在這兩個選項中,我建議使用Javascript庫,除非您由於某種原因不能這樣做。

+0

我會在表格/按鈕的html代碼中創建隱藏的iframe,還是我可以在外面定義它? – 2012-08-14 18:32:39

+0

@RayJTong我已經嘗試過這種技術已經有一段時間了,但我確信你可以把它放在頁面的任何地方。 – Telgin 2012-08-14 18:34:21

+0

謝謝。另外就JQuery而言,XMLHTTPRequest對於用戶來說本質上是不可見的?我從來沒有真正使用JavaScript或Ajax的事。 – 2012-08-14 18:38:13

0

您需要在沒有重新加載頁面的情況下點擊按鈕,將記錄插入到mysql表中。 爲了完成上述任務,您需要使用AJAX,它會使用xmlhttprequest對象向後臺的http服務器發送http請求,從而在不重新加載網頁的情況下更新網頁。 所以你將不得不在JavaScript中創建一個函數,它將使用xmlhttprequest對象向服務器發送http請求,並且還需要定義服務器端處理程序以處理使用ajax發送的http請求。 對於PHP AJAX的實現細節,請參考以下鏈接中提到的例子 http://www.w3schools.com/php/php_ajax_php.asp

0

這很容易用做jQuery的:

<script> 
$(function(){ 
    $('#your_button_dom_id').click(function(){ 
     $.ajax({ 
      url: 'your_php_script_url', 
      type: 'POST', // GET or POST 
      data: 'param1=value1&param2=value2', // will be in $_POST on PHP side 
      success: function(data) { // data is the response from your php script 
       // This function is called if your AJAX query was successful 
       alert("Response is: " + data); 
      }, 
      error: function() { 
       // This callback is called if your AJAX query has failed 
       alert("Error!"); 
      } 
     }); 
    }); 
}); 
</script> 

你可以在jQuery的在這裏閱讀更多關於AJAX:http://api.jquery.com/jQuery.ajax/

0

您可以在隱藏類型的提交按鈕後使用另一個輸入標籤。

<input class="ButtonSubmit" type="Submit" name="Submit" id="Submit" value="Submit"/> 

    </p> 
     <input type="hidden" name="submitted" id="submitted" value="true" /> 

在你的代碼的頂部使用後此

if (isset($_POST['submitted'])) { 
// your code is here 
} 

這對我的工作。您可以在WordPress的模板中使用它,以及

相關問題