【发布时间】:2017-12-22 18:46:22
【问题描述】:
我有两个 javascripts 函数,用于传递两个不同的变量。第一个 javascript 是在下拉列表中传递区域,第二个是在第二个下拉列表中传递名称。现在我想在一个按钮内提交。下面是我的代码,它是部分工作的。当我将值传递给 php 时,它会运行两三次以获得结果,并得出错误的结果。我的 ajax 或 sql 查询有什么问题吗?
$(function() {
$('#form').submit(function(e) {
e.preventDefault();
var id=$(".area").val();
var dataString = 'id='+ id;
$.ajax({
type : 'POST',
url : 'LeaveRecord1.php',
data : dataString,
})
.done(function(data) {
$('.results').html(data);
})
});
});
$(function() {
$('#form').submit(function(e) {
e.preventDefault();
var idd=$(".slct2").val();
var dataStringg = 'idd='+ idd;
$.ajax({
type : 'POST',
url : 'LeaveRecord1.php',
data : dataStringg,
})
.done(function(data) {
$('.results').html(data);
})
});
});
<td><input type="submit" name="report" class="report" id="report" onClick=" myFunction();"></td>
获取值的PHP文件
$poarr =Array();
if (isset($_POST['id'])) {
$sarea=$_POST['id'];
$sql = "SELECT tblLeaveHeader.RefNo, tblLeaveHeader.StaffId, tblLeaveHeader.Branch, tblLeaveHeader.Remark, tblLeaveHeader.Createby, tblLeaveHeader.Approvedd, tblLeaveHeader.Approveby, tblLeaveHeader.AreaCode
FROM tblLeaveHeader INNER JOIN tblStaff ON tblLeaveHeader.AreaCode = tblStaff.AreaCode AND tblLeaveHeader.StaffId = tblStaff.StaffId WHERE (tblLeaveHeader.AreaCode = '$sarea')";
};
if (isset($_POST['idd'])) {
$suser=strtoupper($_POST['idd']);
$sql = "SELECT tblLeaveHeader.RefNo, tblLeaveHeader.StaffId, tblLeaveHeader.Branch, tblLeaveHeader.AreaCode, tblLeaveHeader.Remark, tblLeaveHeader.Createdd, tblLeaveHeader.Createby,
tblStaff.StaffName FROM tblLeaveHeader INNER JOIN tblStaff ON tblLeaveHeader.StaffId = tblStaff.StaffId AND tblLeaveHeader.AreaCode = tblStaff.AreaCode WHERE (tblStaff.StaffName = '$suser')";
};
$link = odbc_connect(DB_HSATTEND, DB_USER, DB_PASS);
$res = odbc_exec($link,$sql);
while ($row = odbc_fetch_array($res)) {
$poarr[] = $row;
}
odbc_free_result($res);
odbc_close($link);
【问题讨论】:
-
为什么不在一个 Ajax 调用中同时传递两个参数?另外,你的两个异步调用会覆盖彼此的结果......
-
当你在表单提交时写了两个 ajax,如果我没有错,你的 html 只有一个表单,所以 bot ajax 会调用
-
我担心它不会起作用,因为它实际上是同时得到两个不同的值,当我调用选择区域时,只显示区域列表,如果调用名称只显示名称只有
-
是的,它只是一种形式,所以当按钮被点击时,两个ajax都会被调用,但是当传递给sql时,它会循环两三次并得到结果。最初的结果是正确的,但之后那,它来了两个错误的结果或得到空的结果
-
第一个js sn-p 有一些严重的代码异味。
标签: javascript php sql ajax