使用symfony为ajax创建数据数组

时间:2014-04-08 05:44:09

标签: javascript php jquery ajax symfony

我用变量创建一个数组:

$( newDiv ).dialog({
        title: data.artikel,
        height: 520,
        width: 700,
        modal: true,
        buttons: {
            "Abbrechen": function() {
                $( this ).dialog( "close" );
            },
            "Hinzufügen": function() {
                var data = [];

                data['objektnummer']        = $( "#dialogArticle" ).data( "objektnummer" );
                data['artikelnummer']       = $( "#dialogArticle" ).data( "artikelnummer" );
                data['kind']                = $( "#dialogArticle" ).data( "kind" );

                data['preis_pro_einheit']   = $( '#preis' ).autoNumeric( 'get' );

                for( i = 1; i < $( ".inputParameter" ).length + 1; i++ )
                {
                    if( $( '#p' + i + '_einheit' ).length > 0 )
                    {
                        data['p' + i + '_einheit'] = $( '#p' + i + '_einheit' ).autoNumeric( 'get' ) ;
                    }
                }
                data['zusatztext']          = $( '#articleZusatztext' ).val();
                data['position']            = 1;

                if( addOrSaveArticle( data ) ) $( this).dialog( "close" );
            }
        },
        close: function(ev, ui) {
            $( this ).dialog( "destroy").remove();
        },
        show: { effect: "fade", duration: 250 }
    });

在以下功能中我有ajax:

function addOrSaveArticle( data )
{
    var url = $( '#artikellist').data( "url-singlearticle" )
    console.log( data );

    $.ajax({
        type: "POST",
        url: url,
        data: data,
        dataType: "json"
    })
    .done(function(resp){

        console.log( "Success" );
    })
    .error(function(){
        console.log( "no connection" );
    });
    return true;
}

控制台日志带来以下输出:

[objektnummer:1480445,artikelnummer:“893”,kind:“new”,preis_pro_einheit:“2.32”,p1_einheit:“15”...]

在我的ajax-Controller中,我想读出变量:

public function editSingleArticle( $userId )
{
    $request = Request::createFromGlobals();

    $objektnummer           = $request->request->get( 'objektnummer' );
    $artikelnummer          = $request->request->get( 'artikelnummer' );
    $subunternehmernummer   = 305956;
    $preis_pro_einheit      = $request->request->get( 'preis_pro_einheit' );
    $p1_einheit             = $request->request->get( 'p1_einheit' );
    $p2_einheit             = $request->request->get( 'p2_einheit' );
    $p3_einheit             = $request->request->get( 'p3_einheit' );
    $zusatztext             = $request->request->get( 'zusatztext' );
    $position               = $request->request->get( 'position' );


    $sql = "INSERT INTO
                objekt_position
                    (
                        id_objekt, id_subunternehmer, artikelnummer,
                        preis_pro_einheit, p1_einheit, p2_einheit, p3_einheit, zusatztext, position
                    )
                VALUES
                    (
                        ". $objektnummer .",
                        ". $subunternehmernummer .",
                        ". $artikelnummer .",
                        ". $preis_pro_einheit .",
                        ". $p1_einheit .",
                        ". $p2_einheit .",
                        ". $p3_einheit .",
                        '". $zusatztext ."',
                        ". $position ."
                    )
        ";
    $em = $this->getDoctrine()->getManager();
    $connection = $em->getConnection();
    $statement = $connection->prepare($sql);
    $statement->execute();

    return array("erledigt"=>"yes);
}

当我添加$ .ajax时 - 调用数据如:

$.ajax({
    ...
    data: {
        objektnummer: data['objektnummer']
        ....
    }
    ..
})

然后变量在ajax控制器中可用。

我对数据阵列做错了什么?

在获取数据后,防止再次进行SQL注入:)

0 个答案:

没有答案