我如何使用jqgrid和php,以便我可以使用crud后的选定行特性,这意味着当添加的数据表单提交时,程序可以根据其位置突出显示哪一行,以便用户可以识别输入数据后发生的更改我尝试使用 AJAX ,但不能
我如何使用jqgrid和php例如像web https://web.transporindo.com/mdgrid/这样我就可以使用crud之后的选定行特性意味着当添加的数据表单被提交时,程序可以根据其位置突出显示哪一行,这样用户就可以识别输入数据后发生的更改我尝试过使用 AJAX ,但不能。我尝试过通过调用函数callAfterSubmit来使用ajax(响应、postData、传递)并将其发送到add_head. php,其中包含
JQGRID
jQuery("#grid_id").jqGrid('navGrid', '#jqGridPager', null, {
recreateForm: true, //formulir akan dibuat ulang setiap kali dialog diaktifkan dengan opsi baru dari colModel
beforeShowForm: function(form) {
form[0].querySelector('#no_invoice').setAttribute('readonly', 'readonly')
// var input = document.getElementById("no_invoice").value;
// var inputBaru = input.replace('<span class="highlight"></span>', ""); // Menghapus kataHapus dari input menggunakan replace()
// document.getElementById("no_invoice").value = inputBaru;
var nilaiAsli = "";
var no_invoice = document.getElementById("no_invoice"); // Ambil element input no_invoice
var tgl_pembelian = document.getElementById("tgl_pembelian"); // Ambil element input tgl_pembelian
var nama_pelanggan = document.getElementById("nama_pelanggan"); // Ambil element input nama_pelanggan
var jenis_kelamin = document.getElementById("jenis_kelamin"); // Ambil element input jenis_kelamin
var saldo = document.getElementById("saldo"); // Ambil element input saldo
nilaiAsli = no_invoice.value; // Simpan nilai asli dari input pada variabel nilaiAsli
var inputBaru = no_invoice.value.replace(/<[^>]+>/g, ""); // Menghapus elemen tag HTML dari input menggunakan regex
no_invoice.value = inputBaru; // Tampilkan input yang telah diubah
nilaiAsli = tgl_pembelian.value; // Simpan nilai asli dari input pada variabel nilaiAsli
var inputBaru = tgl_pembelian.value.replace(/<[^>]+>/g, ""); // Menghapus elemen tag HTML dari input menggunakan regex
tgl_pembelian.value = inputBaru; // Tampilkan input yang telah diubah
nilaiAsli = nama_pelanggan.value; // Simpan nilai asli dari input pada variabel nilaiAsli
var inputBaru = nama_pelanggan.value.replace(/<[^>]+>/g, ""); // Menghapus elemen tag HTML dari input menggunakan regex
nama_pelanggan.value = inputBaru; // Tampilkan input yang telah diubah
nilaiAsli = jenis_kelamin.value; // Simpan nilai asli dari input pada variabel nilaiAsli
var inputBaru = jenis_kelamin.value.replace(/<[^>]+>/g, ""); // Menghapus elemen tag HTML dari input menggunakan regex
jenis_kelamin.value = inputBaru; // Tampilkan input yang telah diubah
nilaiAsli = saldo.value; // Simpan nilai asli dari input pada variabel nilaiAsli
var inputBaru = saldo.value.replace(/<[^>]+>/g, ""); // Menghapus elemen tag HTML dari input menggunakan regex
saldo.value = inputBaru; // Tampilkan input yang telah diubah
},
// afterSubmit:callAfterSubmit,
// reloadAfterSubmit:true,
}, {
afterSubmit: callAfterSubmit,
recreateForm: true,
}, );
function callAfterSubmit(response, postData, oper) {
let sortfield = $(this).jqGrid('getGridParam', 'postData').sidx;
let sortorder = $(this).jqGrid('getGridParam', 'postData').sord;
let pagesize = $(this).jqGrid('getGridParam', 'postData').rows;
let selectedRow = $(this).jqGrid('getGridParam', 'selrow');
$.ajax({
url : "add_header.php",
dataType : 'JSON',
data: {
no_invoice : JSON.parse(response.responseText).no_invoice,
sidx : sortfield,
sord : sortorder,
selectedRow : selectedRow
}
})
.done(function(data) {
$('#cData').click();
let posisi = data.position;
let pager = Math.ceil(posisi / pagesize);
let rows = posisi - (pager - 1) * pagesize;
indexRow = rows - 1;
$('#grid_id').trigger('reloadGrid', { page: pager });
// Setelah berhasil mengupdate data, kita dapat memilih kembali baris yang dipilih sebelumnya
$('#grid_id').jqGrid('setSelection', selectedRow);
});
}
PHP添加_标题. php
<?php
require "db.php";
if(isset($_GET['no_invoice']) && isset($_GET['sidx']) && isset($_GET['sord'])) {
$no_invoice = $_GET['no_invoice'];
$sortfield = $_GET['sidx'];
$sortorder = $_GET['sord'];
$position = getWithPosition($no_invoice, $sortfield, $sortorder, $koneksi);
function getWithPosition($no_invoice, $sortfield, $sortorder, $koneksi) {
$data = mysqli_query($koneksi, "SELECT temp.position, temp.*
FROM
(
SELECT @rownum := @rownum + 1 AS position, penjualan.*
FROM penjualan
JOIN
(
SELECT @rownum := 0
) rownum ORDER BY penjualan.$sortfield $sortorder
) temp WHERE temp.no_invoice = '". $no_invoice ."'");
if(!$data) {
die("Query failed: " . mysqli_error($koneksi));
}
$post = mysqli_fetch_assoc($data);
$pos = $post['position'];
return $pos;
}
$response = ['no_invoice' => $no_invoice, 'position' => $position];
echo json_encode($response);
}
else {
echo "Error: Missing parameters";
}
?>
1条答案
按热度按时间9lowa7mx1#
对我来说,很难理解你想做什么,但在提交表单后,记录保持选中状态。强烈建议在表单编辑中检查选项。
演示可以be seen here
文档在这里