当Javascript中的数组更新时,如何使用PHP更新并插入数据库?

时间:2013-04-03 16:31:45

标签: php javascript postgresql d3.js

我有一个从数据库获取数据的程序,然后使用d3和javascript对其进行绘图。我有几种方法可以在javascript中更新数据并将数据插入到本地数组中,但我也需要在数据库中更新和插入。我该怎么做?我正在使用PSQL作为数据库。

这是我的PHP代码:

<?php

   // attempt a connection
 $dbh = pg_connect("host=localhost dbname=data user=postgres");
 if (!$dbh) {
     die("Error in connection: " . pg_last_error());
 }       

 // execute query
 $sql = "SELECT * FROM dataset";
 $result = pg_query($dbh, $sql);
 if (!$result) {
     die("Error in SQL query: " . pg_last_error());
 }       


 $arr = pg_fetch_all_columns($result, 1);


 // free memory
 pg_free_result($result);       

 // close connection
 pg_close($dbh);

?>

以下是我所讨论的方法,clickEvent会在单击一个栏时提示输入,并更新栏的长度。

function clickEvent(d, i) {
    var op = prompt("Please enter the value", d);
    data[i] = parseInt(op, 10);
    render();

};

单击“添加数据”时,此方法会提示输入,并添加新栏。

d3.select("button").on("click", function(d, i) {
    var op = prompt("Please enter the value", "");
    var newData = parseInt(op, 10);
    if (!isNaN(newData)) {
      data.push(newData);
      render();
    }
});

这是一个jfiddle for the javascript code来看看它的作用。

1 个答案:

答案 0 :(得分:0)

使用jQuery.ajax(),您可以将号码传递给“url”中定义的脚本,该脚本会将值保存到数据库中。

var request = $.ajax({
  url: "script.php",
  type: "POST",
  data: {barLength : newData},
  dataType: "html"
});