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

标签 javascript php jquery mysql ajax

我有一个分为三部分的表单。每个部分都是动态的,并由数据库中的数据填充。例如,仅当其状态为 1 时,保存在数据库中的每个项目都可以在表单中显示为 input。此外,与选定的数据一起,我的 PHP 脚本生成带有 + 的按钮和- javascript函数如fiddle所示

我不知道如何解决的问题是如何为每个值大于0的输入保存namevalue。我在徘徊是否有一些这两个 javasripts 可用于解决我的问题吗?

脚本 1,请参阅此 jsfiddle :

$('forma').submit(function(){    
    $('.qty').each(function(){ 
        if($(this).val() != '0')
        {
            $('output').text($('output').text()+ ' ' + $(this).attr('name') + ' ' + $(this).val()+ ';' );
        }
    });
    return false;
});

脚本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();

?>

脚本3:

$(document).ready(function() {
        $('#forma').submit(function(e){
        e.preventDefault();    
        $('.qty').each(function(){ 
           if($(this).val() != '0')
             {
                $('#output').text($('#output').text()+ ' ' + $(this).attr('name') + ' ' + $(this).val()+ ';' );
             }
          });
          var e=$(this);
          var output = document.getElementById('#output');
          var out = $(e).val();
                $.ajax({
                        type: "POST",
                        url: "save.php",
                        dataType: "json",                        
                        data: "out="+out,
                        success: function(response) {
                                if (response.ok){
                                        alert("Saved: " + response)

                                }else{
                                        alert(response.error);
                                }
                        },
                        error: function(){
                                alert("This won't gonna work like that!");
                        }
                });
        });
 });

和保存.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_connectmysqli_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条件...就像这样

if(isset($_POST['submitForm'])){
#php code
}

所以在数据中的 $.ajax 中:你必须像这样放置你的 isset 变量:

data: {submitForm: TRUE,otherdate:data}, //this is still javascript side

然后在 php 端,如果您想根据您设置的类型访问所使用的数据,您可以将它们获取为:

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

希望这对您有帮助!

关于javascript - 如果值大于 0,则使用 AJAX 或 XMLHttprequest 将数据保存到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121909/

相关文章:

jquery - 悬停具有悬停效果的图像,并在另一个 div 中显示文本

jquery - 隐藏/淡出表格行 - jQuery

javascript - 在 jquery 中获取对象名称?

javascript - testing-library/react 如何在动态生成错误消息时测试无效输入

php - Preg_replace,只替换( )中的模式部分?

php - 如何在使用 PHPUnit、Selenium 和 php-webdriver 进行测试后保持登录状态

javascript - AJAX (JavaScript/PHP),FormData 不发送

javascript - requirejs 中的模块加载顺序

javascript - 从函数返回 SVG

javascript - knockout 脚本不起作用