У меня есть тег ввода (текстовое поле) и dxDatagrid. Я могу передать все выбранные значения из dxDatagrid в базу данных, но я также хочу передать значение текстового поля (которое находится за пределами сетки) вместе с ним одним нажатием кнопки.

$("#myButton").dxButton({
    text: "Test",
    onClick: function () {
        var stones = (JSON.stringify(dataGrid.getSelectedRowsData()));
        console.log(stones);
        updatedetgridReturnShip(stones);
    }
});



function updatedetgridReturnShip(stonedetailsarr){
    $('#sloader').show();
    $.ajax({
        url: 'php/insertGridReturnShipment.php',
        dataType: 'json',
        type: "POST",
        data: {
            returnstonedetails: stonedetailsarr,
            txtRefnoval : txtRefnoval
        },
        success: function (result) {
            alert(result);
            $('#sloader').hide();
            $("#myImportModal").modal("hide");
        }
    });
}

PHP серверный код:

$StoneArr = json_decode($returnstonedetails, true);

$updstmt = '';

foreach ($StoneArr as $Stone){
  $textboxval = $_POST['textboxval'];

  $refVal = json_decode($textboxval, true);

  $updstmt .= 'CALL return_ship_stones('.'"'.$Stone["carat"].'"'.',
  '.'"'.$Stone["clarity"].'"'.','.'"'.$Stone["color"].'"'.','.'"'.$Stone["invcno"].'"'.','.'"'.$Stone["invoicedate"].'"'.', '.'"'.$Stone["lab"].'"'.', 
  '.'"'.$Stone["measurement"].'"'.' , '.'"'.$Stone["ppt"].'"'.' , '.'"'.$Stone["qstonesid"].'"'.' , '.'"'.$Stone["qty"].'"'.' ,
  '.'"'.$Stone["reportno"].'"'.' , '.'"'.$Stone["shape"].'"'.' , '.'"'.$Stone["totalvalue"].'"'.', '.'"'.$refVal["referenceid"].'"'.');';
}

одним щелчком мыши передать как текстовое поле, так и значение dxDatagrid в базе данных

3
convicted

1 ответ

Вы можете использовать метод jquery , чтобы получить значение из текстового ввода по id и передать его в параметр данных ajax :

$('#refno').val().trim()

Код ниже:

function updatedetgridReturnShip(stonedetailsarr){
    $('#sloader').show();

      $.ajax({
          url: 'php/insertGridReturnShipment.php',
          dataType: 'json',
          type: "POST",
          data: {
              returnstonedetails: stonedetailsarr,
              txtRefnoval : txtRefnoval,
              textboxval: $('#refno').val().trim()
          },
          success: function (result) {
              alert(result);
              $('#sloader').hide();
              $("#myImportModal").modal("hide");
          }
      });
  }

Код PHP:

<?
$returnstonedetails = $_REQUEST['returnstonedetails'];

$StoneArr = json_decode($returnstonedetails, true);

$updstmt = '';

foreach ($StoneArr as $Stone){
  $textboxval = $_REQUEST['textboxval'];
  $refVal = $textboxval;

  $updstmt .= 'CALL return_ship_stones('.'"'.$Stone["carat"].'"'.',
  '.'"'.$Stone["clarity"].'"'.','.'"'.$Stone["color"].'"'.','.'"'.$Stone["invcno"].'"'.','.'"'.$Stone["invoicedate"].'"'.', '.'"'.$Stone["lab"].'"'.', 
  '.'"'.$Stone["measurement"].'"'.' , '.'"'.$Stone["ppt"].'"'.' , '.'"'.$Stone["qstonesid"].'"'.' , '.'"'.$Stone["qty"].'"'.' ,
  '.'"'.$Stone["reportno"].'"'.' , '.'"'.$Stone["shape"].'"'.' , '.'"'.$Stone["totalvalue"].'"'.', '.'"'.$refVal.'"'.');';
}
58499132