2016-04-01 90 views
1

我有一個帶有提交按鈕和關閉按鈕的表單。如果用戶輸入內容並點擊提交按鈕,答案將被髮布並保存在數據庫中。如果用戶單擊關閉按鈕,則在數據庫內將使用當前時間戳更新條目。使用AJAX更新MySQL數據庫

一切工作正常,但現在我想進行這些更改,如果有人用AJAX點擊關閉按鈕,這樣我就不必重新加載頁面。

的代碼爲我的提交按鈕是:

<input type='submit' id='setclosed' value='Close Ticket' name='setclosed' class='btn btn-warning' /> 

現在,如果有人點擊提交按鈕時,跟隨着代碼會被我的當前文件(所以對於PHP處理沒有外部文件)內激活:

if (isset ($_POST['setclosed'])) { // Setze Status auf Closed 
    $updatecontent_success=array('stamp_closed'=>$localtime); 
    updateContractTicket($show_details,$updatecontent_success); 
} 

我該怎麼做才能更新數據庫條目,但頁面不會重新加載?

+0

請問您可以發佈使ajax請求的代碼? –

+0

我還沒有任何ajax代碼。我只是用PHP做這個動作,現在我正在尋找一個解決方案,當有人點擊關閉時我不必重新加載頁面。 –

+0

那麼你將不得不使用ajax。閱讀http://api.jquery.com/jquery.post/ –

回答

0

這是一個快速的AJAX示例,幫助您順利完成任務。你應該分開你的PHP和Javascript/HTML代碼。我會寫出這兩個文件。

在您的HTML文件中,您將擁有html代碼和發出請求的javascript,然後提醒用戶請求已經過。確保您的表單不提交任何內容。

-HTML

<button type='button' id='setclosed' name='setclosed' class='btn btn-warning'>Close Ticket</button> 

-Javascript

$('#setclosed').click(function() { 
    $.post('ajax.php', 
    { cmd: 'setclosed' }, 
    function(data) { 
     alert('AJAX request was made'); 
    }, 'json' 
); 
}); 

AJAX的發送由PHP爲$_POST["cmd"]讀取POST變量。這將讓你的PHP執行該命令的必要代碼,回顯狀態,然後退出php文件。

-PHP

if ($_POST["cmd"]=='setclosed') { 
    $updatecontent_success=array('stamp_closed'=>$localtime); 
    $updateContractTicket($show_details,$updatecontent_success); 
    echo json_encode(array('Status' => 'Ok')); 
    exit(0); 
} 

讓我知道如果有不清楚的地方。

+0

非常感謝。它不工作,我真的不知道爲什麼。你能告訴我ajax.php應該是什麼嗎?我沒有ajax.php文件?! –

+0

只需創建一個php文件,並將其命名爲ajax.php。該文件將只是純粹的PHP。 –

+0

ajax.php文件應該包含什麼內容?如果($ _POST ...命令? –