2010-08-26 46 views
0

在我的頁面上我有一個表格,這個表格有一個項目列表和一個編輯按鈕。讓Javascript跟PHP交談

當單擊編輯按鈕時,我想填寫表格中特定於該條目的信息。所有的信息都存儲在一個mySQL數據庫中,可以通過PHP訪問。

我需要我的JavaScript編輯按鈕來獲取表格行標識符到PHP,它將查詢數據庫,返回正確的值,然後JavaScript需要接收這些條目並填寫表單。

我該怎麼做?

我可以通過填寫一個變量,然後檢查導致PHP模擬「事件」:

if($variable){ 
    [do query] 
} 

但是我怎麼填補從Javascript變量銘記的HTML,JS和PHP嵌套在同一頁?

回答

1

我該怎麼做?

正常的解決方法是在你的索引頁中有一個超鏈接,它指向一個顯示編輯頁面的頁面。所以你會有像這樣的網址:index.phpedit.php?id=42。你有什麼理由不想這樣做?

+0

我的系統的風格你有你的表,然後所有與此表有關的操作(添加條目,編輯和刪除條目)出現在「彈出式窗口」中,這些只是javascripted .style.display =「block」和.style.display =「hidden」 – 2010-08-26 12:37:41

+0

然後你的彈出窗口可以包含一個'iframe',它指的是'edit.php'。 – troelskn 2010-08-26 12:39:34

+0

所以我可以做的是有我的table.php編輯後點擊table.php?edit = nameoffield然後做一個簡單的$ _GET編輯值?歡呼聲 – 2010-08-26 12:43:12

5

HTML,JS和PHP並不是真的「在同一個頁面」,如果你不這樣想,它會有所幫助。

您有一個PHP程序可以將HTML文檔輸出到瀏覽器。該文件嵌入了JS。

爲了從JS發送消息到PHP,您需要發出HTTP請求。這可以通過生成一個表單並使用XMLHttpRequest或其他一些方法提交它來完成。

XMLHttpRequest是最常見的,並允許您在不離開頁面的情況下執行此操作。這就是所謂的阿賈克斯。你可以在this question找到一些關於如何開始使用這項技術的建議。

您應該將訪問PHP的數據庫分隔成可重複使用的塊,該塊可在用於生成頁面的URL和用於生成數據snippit的URL之間共享,以便使用遲來更新(格式化這個使用JSON的數據可能是個好主意)。

1

PHP在頁面加載時運行,並且在頁面重新加載之前不能再次訪問。您的解決方案是將腳本更新或運行您所需要的任何查詢,並使用Jquery Ajax

2

它看起來像一些很好的ole ajax會對你有好處。這個jQuery的實現會是這樣的

$('.button-class').click(function(){ 
     $.ajax({ 
     url: 'your-php-page.php?id=xxx', //Call your php page here 
     success: function(data) { 
     $('.table-row').html(data); // Update your page with the data returned 
     } 
    }); 
    }); 
1

你做到這一點而進行異步調用服務器,並等待服務器的響應。這就是所謂的AJAX(異步JavaScript和XML)。

這裏是一個基礎教程:http://www.w3schools.com/ajax/default.asp

也有很多JS庫(ES的JQuery等公司),如果你想使用AJAX,可能使您的生活更輕鬆