将JSON数组发送到MySql数据库

时间:2018-10-17 15:00:28

标签: javascript mysql arrays json post

我需要将数组发送到我的mysql数据库。

我已经创建了一个JSON数组,并且不知道如何将其发布到php以传输到数据库。

$( function () {
        $( '#orderForm' ).on( 'submit', function ( event ) {
            event.preventDefault();
            var myData = [],
                keys = ['item', 'qty', 'price'],
                url = this.action;

            $( '#orderTable' ).find( 'tr:gt(0)' ).each( function ( i, row ){
                    var oRow = {};

                    $( row ).find( 'td' ).each( function ( j, cell ) {
                            oRow[keys[j]] = $( cell ).text();
                    } );

                    myData.push( oRow );
            } );

            console.log( myData );
            console.log( JSON.stringify( myData ) );
        } );
    } );

我需要将item->itemqty->qtyprice->price发布到数据库。

我尝试过:

$.ajax( {
    url: 'tc_menu',
    type: 'POST',
    data: JSON.stringify( myData ),
    success: function ( data ) {
        console.log( "success:", data );
    },
    failure: function ( errMsg ) {
        console.error( "error:", errMsg );
    }
} );

数据存储整个页面,但不存储(字符串化myData )。而且我仍然无法通过 $ _ POST json_decode 数据存储整个页面,但不存储stringified myData,而且$_POSTjson_decode

不能通过php代码获得它

php代码

`if(isset($_POST['submitted_m'])){
$myData = serialize($_POST['data']);
$sqli = "INSERT INTO tc_cafe_orders SET item='".$myData."' ";
if (mysqli_query($db, $sqli)) {
$msg = "New Order added!";
echo "<script>
alert(\"$msg\");
window.location.replace('tc_menu.php');
</script>";}
else {echo "Error:".$sql."<br>".mysqli_error($db);}}`

2 个答案:

答案 0 :(得分:0)

删除嵌套的click事件并关闭。 例如

$( '#orderForm' ).on( 'submit', function ( event ) {
    $( '#orderForm' ).on( 'submit', function ( event ) {

    } );
} );

再试一次。
还有您在php中的MySQL插入语句

$sqli = "INSERT INTO tc_cafe_orders SET item='".$myData."' ";

不好。 在https://www.w3schools.com/php/php_mysql_insert.asp

处了解有关MySQL插入语句的更多信息

答案 1 :(得分:0)

尝试这个js

$(function () {
        $('#orderForm').on( 'submit', function ( event ) {
            event.preventDefault();
            var myData = [],
                keys = ['item', 'qty', 'price'],
                url = this.action;

            $( '#orderTable' ).find( 'tr:gt(0)' ).each( function ( i, row ){
                    var oRow = {};
                    $( row ).find( 'td' ).each( function ( j, cell ) {
                            oRow[keys[j]] = $( cell ).text();
                    } );
                    myData.push( oRow );
            } );

            console.log( myData );
            console.log( JSON.stringify( myData ) );
            data_to_server = JSON.stringify(myData);
        });
        $.post("*your_php_file*", {
            data: data_to_server;
        }).done(function (data_returned) {
            // any your code
        });         
});

似乎您的PHP代码不匹配-尝试使用serialize()而不是json_decode()