Javascript 如果值大于0,则使用AJAX或XMLHttprequest将数据保存到MySQL数据库中

Javascript 如果值大于0,则使用AJAX或XMLHttprequest将数据保存到MySQL数据库中,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我有一张分为三部分的表格。每个部分都是动态的,并由数据库中的数据填充。例如,保存在数据库中的每个项目只有在其状态为1时才能以表单形式显示为输入。此外,我的PHP脚本与所选数据一起生成带有+和-javascript函数的按钮,如图所示 我不知道如何解决的问题是如何为值大于0的每个输入保存名称和值。我想知道这两个javasript中的一些是否可用于解决我的问题 脚本1,请参见以下内容: 脚本2: var inputs = document.getElementById('forma').childr

我有一张分为三部分的表格。每个部分都是动态的,并由数据库中的数据填充。例如,保存在数据库中的每个项目只有在其状态为1时才能以表单形式显示为输入。此外,我的PHP脚本与所选数据一起生成带有+和-javascript函数的按钮,如图所示

我不知道如何解决的问题是如何为值大于0的每个输入保存名称和值。我想知道这两个javasript中的一些是否可用于解决我的问题

脚本1,请参见以下内容:

脚本2:

var inputs = document.getElementById('forma').children;
var data = {};
for(var i in inputs ){
    if(inputs[i].value != 0)data[inputs[i].name] = inputs[i].value;
}
save.php文件示例:

<?php

 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("article_db") or die(mysql_error());


 $sql="INSERT INTO article (order)
 VALUES ('".$_POST['output']."')";

 $save = mysql_query($sql);

 mysql_close();

?>
和save.php:

<?php

 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("caffe") or die(mysql_error());

 if(isset($_POST['forma'])){
 $sql="INSERT INTO narudzbe(narudzba) VALUES ('".$_POST['output']."')";

 $save = mysql_query($sql);
 }

 mysql_close();


?>
我从页面上的脚本3的第一部分得到结果,但它不会保存到数据库中

如果是,我怎么做?我以前从未使用过AJAX或XMLHttprequest将数据保存到数据库中,只使用过纯PHP。我需要提到的是,我也在这个项目中使用jquerymobile。我知道mysql_connect和mysqli_connect不推荐使用,但这只是为了练习


提前谢谢。

这可能会对您有所帮助

$.ajax({
      url: '/path/to/file',
      type: 'default GET (Other values: POST)',
      dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
      data: {param1: 'value1'},
    })
    .done(function() {
      console.log("success");
    })
    .fail(function() {
      console.log("error");
    })
    .always(function() {
      console.log("complete");
    });
现在。。当我使用Ajax时,我通常会创建一个Ajax.php,并在其中使用isset condition。。。像这样

if(isset($_POST['submitForm'])){
#php code
}
因此,在数据中的$.ajax中:您必须像这样放置isset变量:

data: {submitForm: TRUE,otherdate:data}, //this is still javascript side
然后,在php端,如果您希望根据设置的类型访问所使用的数据,您可以通过以下方式获得它们:

$_GET['otherdate'] OR $_POST['otherdate']

希望这对你有帮助

感谢Sebastiens的提示,我成功地解决了我的问题,如下所示:

javascript:

$(document).ready(function(e) {
$("#posalji").click(function() {

var dataType = document.getElementById("dataType").value;
var output = document.getElementById("output").value;
var status = document.getElementById("status").value;
$.ajax({
        type: "POST",
        url: "save.php",
        data: {dataType: dataType, output: output, status: status}
       })
    });
});    
和PHP文件:

<?php

 $dataType = $_POST['dataType'];
 $output = $_POST['output'];
 $status = $_POST['status'];

 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("caffe") or die(mysql_error());


 $sql="INSERT INTO narudzbe (sto, narudzba, status) VALUES ('$dataType', '$output', '$status')";

 $save = mysql_query($sql);


 mysql_close();

 header('Location: index.php');


?>

谢谢你,塞巴斯蒂安,再次感谢你。

谁说mysqli_*不受欢迎了?那么看看关于Ajax的教程……嗯,现在还没有,但很快就会成功。我在看AJAX教程,但我有点迷路了,找不到解决问题的方法。尝试了几个例子,但没有结果:嗯,我还是被卡住了。到目前为止,我创建了脚本,并在答案中更新为脚本3。我错过了什么?我在段落内的页面上得到一个带有“output”id的结果,以查看脚本是否至少有一部分有效,但随后我从错误函数中得到了消息。也许我应该为脚本的第一部分创建一个按钮,将结果传递到隐藏的输入字段,并为提交到AJAX创建另一个按钮?例如,Save按钮是隐藏的,直到我按下confirm order按钮将输出传递给hidden input并取消隐藏Save按钮;在submit事件上,这很好,因为您希望在php isset中触发Ajax调用。。ifisset$_POST['forma']{这是您的表单…但这从来没有设置过,因为您阻止了提交触发器..您需要做的是回答中的那样,但是从Ajax+发送的数据上的isset将建议您将数据设置为so data:{param1:'value1'},然后使用isset like_so:isset$_POST['param1']我终于用你的一些提示保存了数据,谢谢。我只有一个小问题,我不能用问题中所示的脚本1填充输入字段,但我可以用输出id填充段落。如果你看到我遗漏了什么,另一个提示会很好。我已经发布了我主要问题的解决方案作为答案。再次感谢你。
$(document).ready(function(e) {
$("#posalji").click(function() {

var dataType = document.getElementById("dataType").value;
var output = document.getElementById("output").value;
var status = document.getElementById("status").value;
$.ajax({
        type: "POST",
        url: "save.php",
        data: {dataType: dataType, output: output, status: status}
       })
    });
});    
<?php

 $dataType = $_POST['dataType'];
 $output = $_POST['output'];
 $status = $_POST['status'];

 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("caffe") or die(mysql_error());


 $sql="INSERT INTO narudzbe (sto, narudzba, status) VALUES ('$dataType', '$output', '$status')";

 $save = mysql_query($sql);


 mysql_close();

 header('Location: index.php');


?>