gpt4 book ai didi

php - 从 Jquery 插入变量总是失败

转载 作者:行者123 更新时间:2023-11-29 13:32:44 26 4
gpt4 key购买 nike

我有一些问题,我使用 php 制作了一些本地网站。

我有一个名为functions.php的文件,这是代码:

public function saveAll($idmt_salesarea, $thn_bln, $no_pesanan, $tgl_pesan, $idms_langganan, $idms_kodebarang, $quantity, $harga, $jumlah, $disc_cash, $disc_kredit){
$message = "Waiting input...";
try{
$con = new db();
$conn = $con->connect();
$query = "INSERT INTO mt_pesanan(idmt_salesarea,thn_bln,no_pesanan,tgl_pesan,idms_langganan, idms_kodebarang,quantity,harga,jumlah,disc_cash,disc_kredit) VALUES ($idmt_salesarea, '$thn_bln', '$no_pesanan', '$tgl_pesan', $idms_langganan, $idms_kodebarang, '$quantity', $harga, $jumlah, '$disc_cash', '$disc_kredit')";
$result = mysqli_query($conn, $query) or die(mysqli_error($conn) . " " . mysqli_errno());
if($result == 1){
$message = "Success";
} else if($result == 0){
$message = "Failed";
}
}catch(Exception $exc){
echo $exc->getCode();
}
$con->disconnect();
return $message;
}

i 从名为:index.php 的文件中获取输入参数,并使用 AJAX Jquery 传递参数。参数本身被发送并指向名为 insert.php 的文件

这是 insert.php 文件:

 <?php

include_once 'functions.php';

$idmt_salesarea = isset($_GET['salesarea']);
$thn_bln = isset($_GET['thn_bln']);
$no_pesanan = isset($_GET['nopes']);
$tgl_pesan = isset($_GET['tglpes']);
$idms_langganan = isset($_GET['idlangganan']);
$idms_kodebarang = isset($_GET['idbarang']);
$quantity = isset($_GET['quantity']);
$harga = isset($_GET['harga']);
$jumlah = isset($_GET['jumlah']);

$disc_cash = isset($_GET['disc_cash']);
$disc_kredit = isset($_GET['disc_kredit']);
if (($disc_cash == null) || ($disc_kredit == null)) {
$disc_cash = 0;
$disc_kredit = 0;
}

$insert = new functions();
$insert->saveAll($idmt_salesarea, $thn_bln, $no_pesanan, $tgl_pesan, $idms_langganan, $idms_kodebarang, $quantity, $harga, $jumlah, $disc_cash, $disc_kredit);

?>

但是当我检查错误时,这是​​无法从 insert.php 文件获取的变量(使用 $_GET 语句)。

如何正确获取变量?因为所有参数都已设置。

我知道这是面向对象风格和老式 php 编码的结合。有什么想法吗?

提前致谢。

更新

这是使用jquery ajax发送数据的index.php文件

    function sendAll(){
var tgl_pesan = $('#dpc').val();
var sales_area = $('#sales_area').val();
var nopes = $('#no_pesanan').val();
var thnbln = getTahunBulan();
var id_langganan = $('#kode_langganan').val();
var id_barang = $('#kode_barang').val();
var quantity = getQuantity();
var harga = $('#harga').val();
var jumlah = $('#jumlah').val();
var disc_cash = $('#cash').val();
var disc_kredit = $('#kredit').val();
var max = $('#max').val();

$.ajax({
type:"POST",
**url:"insert.php",**
data:{
salesarea:sales_area,
thn_bln:thnbln,
nopes:nopes,
tglpes:tgl_pesan,
idlangganan:id_langganan,
idbarang:id_barang,
quantity:quantity,
harga:harga,
jumlah:jumlah,
disc_cash:disc_cash,
disc_kredit:disc_kredit,
max:max
},
success:function(msg){
alert("Data Inserted");
},
error:function(msg){
alert("Data Failed to save" + msg);
}
});

ajax本身指向文件insert.php,insert.php正在执行另一个名为functions.php的文件中的函数

最佳答案

问题出在这段代码上:

$idmt_salesarea = isset($_GET['salesarea']);
$thn_bln = isset($_GET['thn_bln']);
$no_pesanan = isset($_GET['nopes']);
$tgl_pesan = isset($_GET['tglpes']);
$idms_langganan = isset($_GET['idlangganan']);
$idms_kodebarang = isset($_GET['idbarang']);
$quantity = isset($_GET['quantity']);
$harga = isset($_GET['harga']);
$jumlah = isset($_GET['jumlah']);

$disc_cash = isset($_GET['disc_cash']);
$disc_kredit = isset($_GET['disc_kredit']);

对于每个变量,您都将分配 isset() 的结果,该结果将计算为 TRUEFALSE。如果您想绑定(bind) $_GET 输入的实际值,请更改以下语法中的每一行:

$idmt_salesarea = isset($_GET['salesarea']);

$idmt_salesarea = isset($_GET['salesarea']) ? $_GET['salesarea'] : '';

但是,这段代码并不是真正可维护的,我还建议使用数组,而不是将那么多参数传递给 saveAll() 方法。

响应您的更新

如果您使用 type: "POST" 发送 AJAX 请求,则无法通过 PHP $_GET super 全局访问您的输入数据,您必须使用 $_POST。但是,我之前所说的仍然有效,因为您没有正确地将值绑定(bind)到变量。

关于php - 从 Jquery 插入变量总是失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19177980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com