Q: Error Undefned index al utilizar ajax Tengo el siguiente inconveniente, estoy tratando de pasar una valor por de ajax a un formulario PHP, pero me dice que tengo un error:
el código que llama a la función PHP es el siguiente:


<td><input type="hidden" class="form-control" name="ID_Nova" id="ID_Nova" placeholder="ID Novedad" required="true" value ="<?php echo $ID_Novedad ?>" readonly ></td>
<td><input type="hidden" class="form-control" name="Docu" id="Docu" placeholder="Número de documento" required="true" value ="<?php echo $Documento ?>" readonly ></td>
<td><input type="hidden" class="form-control" name="Anoen" id="Anoen" placeholder="Año" required="true" value ="<?php echo $Ano ?>" readonly ></td>
<td><input type="hidden" class="form-control" name="Mesen" id="Mesen" placeholder="Mes" required="true" value ="<?php echo $Mes ?>" readonly ></td>  
<td><input type="hidden" class="form-control" name="Peri" id="Peri" placeholder="Período" required="true" value ="<?php echo $periodo ?>" readonly ></td>  
<td><input type="hidden" class="form-control" name="Conce" id="Conce" placeholder="Concepto" required="true" value ="<?php echo $Concepto ?>" readonly ></td>  


<body onload="lista_DescuentoNovedad(ID_Nova.value, Docu.value,Anoen.value,Mesen.value,Peri.value,Conce.value);">


La función de ajax es la siguiente:


 function lista_DescuentoNovedad(ID_Novedad,Documento,Ano,Mes,periodo,Concepto){
    $(document).ready(function() {
  var ID_Novedad = $('#ID_Nova').val();
  var Documento = $('#Docu').val();
  var Ano = $('#Anoen').val();
  var Mes = $('#Mesen').val();
  var periodo = $('#Peri').val();
  var Concepto = $('#Conce').val();
  var datastring ={'ID_Novedad=' + ID_Novedad + '&Documento=' + Documento + '&Ano=' + Ano + '&Mes=' + Mes + '&periodo=' + periodo + '&Concepto=' + Concepto};
          $.ajax({
          beforeSend: function(){
             $("#lista_DescuentoNovedad").html('<b>Actualizando lista de Descuentos en la novedad...</b>');
           },
          url: 'lista_DescuentoNovedad.php',
    data: datastring,
          type: 'POST',
          success: function(x){
            $("#lista_DescuentoNovedad").html(x);
   /********************HAY QUE VALIDAR #lista_clientes*******************************/
            $("#lista_clientes").dataTable();
           },
           error: function(jqXHR,estado,error){}
           });
          });
 }


El código PHP donde recibe la información es el siguiente:


<?php
include ("funciones/conex.php");
$link=Conectarse();

$ID_Novedad = $_POST['ID_Novedad'];
$Documento = $_POST['Documento'];
$Ano = $_POST['Ano'];
$Mes = $_POST['Mes'];
$periodo = $_POST['periodo'];
$Concepto = $_POST['Concepto'];
$AnoActual=date("Y");
$con=mysql_query("SELECT D.ID,D.ID_Novedad,D.ID_Dcto,D.ValorDcto,D.Estado,DC.NomDcto FROM tbl_dtldcto as D INNER JOIN tbl_dctos AS DC ON D.ID_Dcto=DC.ID_Dcto where D.ID_Novedad='$ID_Novedad' AND D.Estado = 'PENDIENTE'",$link);

?>


Los errores que me arroja el sistema son:

Notice: Undefined index: Documento in
  C:\xampp\htdocs\Abecol\modulos\lista_DescuentoNovedad.php on line 6
Notice: Undefined index: Ano in
  C:\xampp\htdocs\Abecol\modulos\lista_DescuentoNovedad.php on line 7
Notice: Undefined index: Mes in
  C:\xampp\htdocs\Abecol\modulos\lista_DescuentoNovedad.php on line 8
Notice: Undefined index: periodo in
  C:\xampp\htdocs\Abecol\modulos\lista_DescuentoNovedad.php on line 9
Notice: Undefined index: Concepto in
  C:\xampp\htdocs\Abecol\modulos\lista_DescuentoNovedad.php on line 10

El dato ID_Novedad, no tiene ningún inconveniente.

A: Bien mi solución es la siguiente;
En la parte de tu Javascript estas intentando crear un objeto, pero esta no es la manera correcta de hacerlo, un objecto posee pares key value y lo que estas intentando hacer es guardar un string dentro de un objecto, la solución es cambiar el string a un objeto;
$(document).ready(function () {
    var ID_Novedad = $('#ID_Nova').val();
    var Documento = $('#Docu').val();
    var Ano = $('#Anoen').val();
    var Mes = $('#Mesen').val();
    var periodo = $('#Peri').val();
    var Concepto = $('#Conce').val();
    //Aqui
    var datastring = {
        'ID_Novedad': ID_Novedad,
        'Documento': Documento,
        'Ano': Ano,
        'Mes': Mes,
        'periodo': periodo,
        'Concepto': Concepto
    };

    $.ajax({
        beforeSend: function () {
            $("#lista_DescuentoNovedad").html(
                '<b>Actualizando lista de Descuentos en la novedad...</b>');
        },
        url: 'lista_DescuentoNovedad.php',
        data: datastring,
        type: 'POST',
        success: function (x) {
            $("#lista_DescuentoNovedad").html(x);
            /********************HAY QUE VALIDAR #lista_clientes*******************************/
            $("#lista_clientes").dataTable();
        },
        error: function (jqXHR, estado, error) {}
    });
});

Ahora ya puedes acceder a los indices en tu backend sin problemas
