如何选择设置条件为$ _POST的数据为空且值为

时间:2017-08-26 15:58:26

标签: php jquery ajax mysqli

我想使用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);
?> 

3 个答案:

答案 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);