我想使用PHP和ajax调用函数从我的数据库中选择数据。
在select函数中,我使用textbox
中的$ _POST。我在我的页面上创建了一个PHP和ajax调用函数,但是出了点问题。我使用isset[]
来检查我从$_POST
获取的textbox
数据。我在那里使用if
条件 - 当$_POST
为空时,它选择没有where子句的所有数据,当特定$_POST
有值时,它将选择数据 a where子句。
这里的问题是,当我使用textbox
中的数据将字符串呈现给我的PHP $_POST
时,我的PHP上的else条件不会运行。
这是我使用的代码:
的JavaScript / jQuery的:
$(document).ready(function(e) {
var data = $("#report_all").serialize();
$('#all_report thead').empty();
$('#all_report tbody').empty();
$.ajax({
data: data,
type: "Post",
url: "../php/report/report_all_wjm.php",
success: function(data){
var list = JSON.parse(data);
var th = "";
th += "<th>"+"<center>"+'No'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Storage Location'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Kode Material'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Nama Material'+"</center>"+"</th>";
th += "<th>"+"<center>"+'No.Polisi'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Id Identifier'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Date'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Netto'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Uses'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Unit'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Payroll'+"</center>"+"</th>";
th += "</th>";
$("#all_report thead").append(th);
for(var i = 0; i < list.length; i++){
var tr = "<tr>";
tr += "<td>" +(i+1)+"</td>";
tr += "<td>" +list[i]['sloc']+"</td>";
tr += "<td>" +list[i]['kode']+"</td>";
tr += "<td>" +list[i]['nama']+"</td>";
tr += "<td>" +list[i]['no_pol']+"</td>";
tr += "<td>" +list[i]['id']+"</td>";
tr += "<td>" +list[i]['date']+"</td>";
tr += "<td>" +list[i]['netto']+"</td>";
tr += "<td>" +list[i]['uses']+"</td>";
tr += "<td>" +list[i]['unit']+"</td>";
tr += "<td>" +list[i]['payroll']+"</td>";
tr += "</tr>";
$("#all_report tbody").append(tr);
$("#all_report").show();
}
return false;
}
});
});
PHP :
<?php
include("../../Connections/koneksi.php");
$date_awal=$_POST['date_start'];
$date_akhir=$_POST['date_end'];
$kode=$_POST['kode_mat'];
$kode1=$_POST['kode_mat1'];
$sloc=$_POST['s_loc'];
$sloc1=$_POST['s_loc1'];
$type=$_POST['get_type'];
//Display all data
if (isset($date_awal) == "" || isset($date_akhir) == "" || isset($sloc)== "" || isset($sloc1)== "" || isset($kode)== "" || isset($kode1)== "" || isset($type)== "" ){
$sql = "SELECT * FROM wjm ORDER by no asc";
$query = mysqli_query($db,$sql);
$rows = array();
while($tmp= mysqli_fetch_assoc($query)) {
$rows[] = $tmp;
}
}
//Display all data by one date
else {
// Data for Titik1
$sql = "SELECT * FROM wjm WHERE date='$date_awal' order by kode asc ";
$query = mysqli_query($db,$sql);
$rows = array();
while($tmp= mysqli_fetch_assoc($query)) {
$rows[] = $tmp;
}
echo json_encode($rows);
}
mysqli_close($db);
?>
答案 0 :(得分:0)
你无法检查变量中的isset。而是喜欢这个
if ($date_awal == "" || $date_akhir == "" || $sloc == "" || $sloc1 == "" || $kode == "" || $kode1 == "" || $type == "" ){
}else{
}
答案 1 :(得分:0)
10010100
会返回一个布尔值,但您要将其与字符串进行比较,因此这没有多大意义:
isset()
它应该像这样使用:
if (isset($date_awal) == "") { ... }
但是,您可能希望使用if (isset($date_awal)) { ... }
代替empty()
。如果变量存在且包含空字符串,isset()
仍将返回true,这可能不是您想要的。你可能想要这个:
isset()
注意:
if (!empty($date_awal) || !empty(...) || !empty(...) ... ) {
}
输出:
$foo = '';
var_dump(isset($foo));
var_dump(empty($foo));
答案 2 :(得分:0)
如果你只想在变量$ date_awal中有一些值时添加where子句(即$ _POST [&#39; date_start&#39;]),那么我会说要检查它是否条件&amp;其他部分应该进入其他部分.. 你也可以保留mysqli_query&amp;虽然在ifelse条件之外循环,因为这两个部分在两种情况下都相同。
$rows = array();
if( date_awal != '' ){
$sql = "SELECT * FROM wjm WHERE date='$date_awal' order by kode asc ";
}else{
$sql = "SELECT * FROM wjm ORDER by no asc";
}
$query = mysqli_query($db,$sql);
while($tmp= mysqli_fetch_assoc($query)) {
$rows[] = $tmp;
}
echo json_encode($rows);