2016-02-15 53 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