Ajax成功函数触发数据

时间:2018-08-23 12:39:04

标签: php ajax

我的代码有问题。可以说我在后台有PHP网站,并且该网站在做什么。可以说,在此站点中,我有$status = "1";,在我的Ajax代码中,我有:

$.ajax({
    url: 'src/single.php',
    type: 'POST',
    data: {single:1, id:id},
    success: function(data){
        $('#live_data').val('');
        $('#live_data').html(data);
    }
});

,我想知道是否有可能从我的PHP页面触发$ status。

success: function(data){
   if (data.status == '1') {
        $('#live_data').val('');
        $('#live_data').html(data);
   } if (data.status == '2') {
        $('#search_result').val('');
        $('#search_result').html(data);
   }

如果可以的话,谢谢您的帮助。

编辑:

这是我的代码:

首先用于从db获取数据, 第二个是从数据库中搜索数据, 第三是从数据库中获取单个数据。 它工作正常,但问题是,当我单击行时,它显示结果2次,第一次是显示,第二次是搜索 但是在搜索中是正确的。

$('#live_data')用于show.php数据,$('#search_result')用于搜索数据。当我单击show.php中的行时,它将显示结果2次。首先来自show.php,其次来自search.php,但是当我单击search.php中的行时,它正确显示(只有一个结果)。我知道是因为我有

$('#live_data').val('');
$('#live_data').html(data);

但是当我想从show.php隐藏重复的结果时,我会做$('#search_result').val('');,但随后我从search.php隐藏我的单个数据

这就是为什么我要使用if语句来控制它

我在下面附加图片

用于单个数据提取的ajax:

//jeden zaznam
    $(document).on('click', '.clickable-row', function(){

        var id = $(this).data("id2");

        $.ajax({
            url: 'src/single.php',
            type: 'POST',
            data: {single:1, id:id},
            success: function(data){
                $('#live_data').val('');
                $('#live_data').html(data);
                $('#search_result').html(data);
            }
        });
    });

第一:

<?php 

    include("db.php");

    $output = "";
    $sql = "SELECT * FROM otk";

    $result = mysqli_query($conn, $sql);

    $output .= "<table class='table table-hover'>
                    <thead>
                        <tr>
                            <th>Číslo zákazky</th>
                            <th>Pozícia</th>
                            <th>Stav</th>
                            <th>Dátum</th>
                            <th>Operátor</th>
                        </tr>
                    </thead>";
    while ($row = mysqli_fetch_array($result))
    {
        $output .= "<tr class = 'clickable-row' data-id2 ='".$row['id_otk']."'>
                        <td>".$row['kod_otk']."</td>
                        <td>".$row['poz_otk']."</td>
                        <td>".$row['stav_otk']."</td>
                        <td>".$row['datum_otk']."</td>
                        <td>".$row['op_otk']."</td>
                    </tr>";
    }

    $output .= "</table>";

    echo $output;

?>

第二:

<?php 

if (isset($_POST['search']))
{
    include("db.php");

    $search_text = mysqli_real_escape_string($conn, $_POST['search_text']);
    $search = htmlspecialchars($search_text);

    $output = "";
    $output .= "
        <table class='table table-hover'>
                    <thead>
                        <tr>
                            <th>Číslo zákazky</th>
                            <th>Pozícia</th>
                            <th>Stav</th>
                            <th>Dátum</th>
                            <th>Operátor</th>
                        </tr>
                    </thead>";

    $sql = "SELECT * FROM otk WHERE kod_otk LIKE '%".$search."%'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0)
    {
        while($row = mysqli_fetch_array($result))
        {
            $output .= "
                <tr class = 'clickable-row' data-id2 ='".$row['id_otk']."'>
                    <td>".$row['kod_otk']."</td>
                    <td>".$row['poz_otk']."</td>
                    <td>".$row['stav_otk']."</td>
                    <td>".$row['datum_otk']."</td>
                    <td>".$row['op_otk']."</td>
                </tr>";
        }

        $output .= "</table>
                        <div class='d-flex justify-content-center'>
                        <button class='btn btn-primary' onclick='history.go();'>Späť</button>
                    </div>";

        echo $output;

    } else {
        echo "Žiadny záznam";
    }
}


?>

第三:

<?php

if (isset($_POST['single']))
{
    include("db.php");

    $id = mysqli_real_escape_string($conn, $_POST['id']);
    echo "id je: ".$id;

    $sql = "SELECT * FROM otk WHERE id_otk = '".$id."'";
    $result = mysqli_query($conn, $sql);

    $output = "<table class='table table-hovrt'>
                    <thead>
                        <tr>
                            <th>Číslo zákazky</th>
                            <th>Pozícia</th>
                            <th>Stav</th>
                            <th>Poradové číslo</th>
                            <th>Technológia</th>
                            <th>Dokument</th>
                            <th>Zariadenie</th>
                            <th>Operátor</th>
                            <th>Dátum</th>
                        </tr>
                    </thead>";

    if (mysqli_num_rows($result) > 0)
    {
        while ($row = mysqli_fetch_array($result))
        {
            $output .= "
                <tr>
                    <td>".$row['kod_otk']."</td>
                    <td>".$row['poz_otk']."</td>
                    <td>".$row['stav_otk']."</td>
                    <td>".$row['cislo_otk']."</td>
                    <td>".$row['tech_otk']."</td>
                    <td>".$row['dok_otk']."</td>
                    <td>".$row['zar_otk']."</td>
                    <td>".$row['op_otk']."</td>
                    <td>".$row['datum_otk']."</td>
                </tr>";
        }

        $output .= "</table>
                    <div class='d-flex justify-content-center'>
                        <button class='btn btn-primary' onclick='history.go(-2);'>Späť</button>
                    </div>";

        echo $output;
    } else {
        echo "Error: " .  mysqli_error($sql);
    }
}



?>

Image01:

enter image description here

Image02: enter image description here

2 个答案:

答案 0 :(得分:1)

您必须使用以下命令获得public class BookModel { public string Title { get; set; } public IEnumerable<AuthorModel> Authors { get; set; } public Category Category { get; set; } public string Isbn { get; set; } public string PublishingHouse { get; set; } public string Edition { get; set; } public bool IsDamaged { get; set; } public bool IsLost { get; set; } } public class InventoryItemModel { public Guid BookId { get; set; } public BookModel Book { get; set; } public int Number { get; set; } public AcquisitionDetailModel AcquisitionDetail { get; set; } } single变量:

id

然后,您将能够在成功数据中检索状态参数。

答案 1 :(得分:0)

您最好的选择是使用json_encode()

示例:

$result = array();

$result = array('status' => '1');

echo json_encode(result);

使用上述方法,您将可以通过jquery访问status键。