2016-02-15 55 views
0

我搜索了互聯網,並找到了一些關於使用ajax設置我的數據庫中的信息。我找到了this page,但它顯示瞭如何從數據庫中獲取信息。Mysql通過Ajax插入查詢

是否也可以在數據庫中設置信息?

我用這個作爲時間表。

在我的數據庫

我有一個包含以下各列的表格:

  • 開始日期
  • 結束日期
  • 產品描述
  • 預計生產
  • 實際生產
  • 差異

當他們創建時間表時,他們只知道前四個。另外兩個需要自動填寫。我這樣做,當生產完畢:

我做了有關在生產完成後檢查小事做起:

setInterval(function() 
{ 
    var currentTime = new Date(); 
    var endProductionTimeMachine1 = <?php echo json_encode($TempomaticRow1[0]['Einddatum']) ?>; // get the enddate from the database via php 
    var ActualProductionToday = 2100; //just an example value 

    //Convert mysql date to javascript date 
    var t = endProductionTimeMachine1.split(/[- :]/); 
    var endProdTimeMachine1 = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]); 

    if(currentTime == endProdTimeMachine1) 
    { 
     //set information in the DB   
    } 
},1000); 

所以我想知道如果我可以調用插入一個PHP頁面信息到我的數據庫參數從這個頁面。

+0

獲取和設置信息都依賴於查詢(SELECT,INSERT,UPDATE,DELETE)和所有可以基於一個AJAX調用PHP代碼中執行。 –

回答

1

是的,可以。

你可以用jquery通過ajax使用post方法來實現。

所以,現在你有你的增值經銷商必須添加一個這樣的代碼:

$.ajax({ 
    method: "POST", 
    url: "some.php", //the endpoint in php where your save method is 
    data: { currentTime: currentTime, endProductionTimeMachine: endProductionTimeMachine1 ...and so on} 
}) 
    .done(function(msg) { 
    alert("Data Saved: " + msg); 
    }); 

,並在你的PHP只是這樣做......

if(isset($_POST['currentTime']){ 
    $currentTime =$_POST['currentTime']; 
} 
... and so on 

後,你讓所有的vars確保你使用(如果你沒有使用框架)一個mysql注入清理。

我建議使用mysqli_real_escape_string,所有的變量都在你的PHP端後,你可以創建你的查詢來設置/更新你的數據庫的信息。阿賈克斯here

更多信息

+0

有沒有辦法讓我看到他在PHP頁面上做了什麼?當我簡單地打開php頁面時,它是空的(因爲它發送的數據沒有設置) – Bart88

+0

你可以檢查你的日誌,如果出現問題或成功,它會出現在 – jpganz18

+0

如果我寫一條消息(用於顯示'$ stmt-> execute()=== true)')我怎麼能看到我的日誌?或者我如何登錄?我無法看到我的php頁面上現在發生了什麼...... – Bart88

1

使用該頁面並修改AJAX調用,以便觸發一個PHP腳本,該腳本將更新您的數據庫。將所有必要的信息發送到服務器。爲了更改數據庫,可以通過MySQLi或PDO使用「準備好的語句」。
千萬不要將客戶端的SQL查詢發送到服務器!始終只發送值並讓服務器構建查詢!

對於一個完整的例子,你也可以看看這個:http://www.plus2net.com/php_tutorial/display-record-edit.php