Как показать сообщение или данные только один раз, когда установите несколько флажков в JQuery? - PullRequest
0 голосов
/ 01 октября 2018

код:

<script>
    $(document).ready(function(){
        $(".choose").click(function(){
            job_type = $(':checked').map(function() { 
                            return this.value; 
                        }).get().join(',');
            category = $("#cat_gory").val();
            $.ajax({
                type:"POST",
                data:{"job_type":job_type,"category":category},
                url:"type-jobs.php",
                success:function(data){
                    $(".success").html(data);
                }
            });
        });
    });
</script>
    <input type="hidden" name="cat_gory" id="cat_gory" value="<?php echo $job_category; ?>" />  
<p class="flchek">
    <input type="checkbox" name="choosetype" value="freelance" class="choose" id="33r">
    <label for="33r">Freelance</label>
</p>
<p class="ftchek">
    <input type="checkbox" name="choosetype" value="full time" class="choose" id="dsf">
    <label for="dsf">Full Time</label>
</p>
<p class="ischek">
    <input type="checkbox" name="choosetype" value="internship" class="choose" id="sdd">
    <label for="sdd">Internship</label>
</p>
<div class="success"></div>

type-jobs.php

<?php
    include("config.php");
    $job_category = mysqli_real_escape_string($con,$_POST['category']);
    $job_type = mysqli_real_escape_string($con,$_POST['job_type']);
    $tag = explode(",",$job_type);
    foreach($tag as $type)
    {
        $sql_job = mysqli_query($con,"select p.job_title,c.state,c.city from company c inner join jobs p on p.company_name = c.company_name where p.category = '".$job_category."' and job_type='".$type."'");

        $result_job = mysqli_num_rows($sql_job);
        if($result_job > 0)
        {
            while($row_jobs = mysqli_fetch_array($sql_job))
            {
                echo '<h3>'.$row_jobs['job_title'].'</h3>';
            }
        }
        else
        {
            echo '<p id="c_mm">record not found</p>';
        }
    }
?>

В этом коде у меня есть несколько флажков.Теперь, когда я нажимаю на флажок, чтобы получить данные через jquery / ajax, он возвращает мне данные, но проблема в том, что если я нажимаю на флажок freelance, он снова показывает record not found, когда я нажимаю full time, тогда он показывает record not found а также jobs.Теперь я хочу, чтобы, если данные не были найдены в моей базе данных, они показывали мне одно сообщение, а если данные были найдены, то скрывали сообщение и отображали запись базы данных.Итак, как я могу это сделать?Пожалуйста, помогите мне.

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

НЕ нужно взрывать $jobtype Использовать 'jobtype IN('.$jobtype.') '

    <?php
    include("config.php");
    $job_category = mysqli_real_escape_string($con,$_POST['category']);
    $job_type = mysqli_real_escape_string($con,$_POST['job_type']);

    $sql_job = mysqli_query($con,"select p.job_title,c.state,c.city from company c inner join jobs p on p.company_name = c.company_name where p.category = '".$job_category."' and job_type IN('".$jobtype."') ');

       $count = mysqli_num_rows($sql_job);
        $row_data = mysqli_fetch_array($chek_result);
    if($count > 0){
        foreach($row_data as $data){
           $message = '<h3>'.$data['job_title'].'</h3>';
        }
    }else{
       $message = "No Data found";
    }
echo $message;exit;
?>
0 голосов
/ 01 октября 2018

Если вы хотите показывать сообщение record not found, только если вы не нашли никакой записи, вы можете использовать флаг в php примерно так:

<?php
include("config.php");
$job_category = mysqli_real_escape_string($con,$_POST['category']);
$job_type = mysqli_real_escape_string($con,$_POST['job_type']);
$found = 0;
$message = '';
$tag = explode(",",$job_type);
foreach($tag as $type)
{
    $sql_job = mysqli_query($con,"select p.job_title,c.state,c.city from company c inner join jobs p on p.company_name = c.company_name where p.category = '".$job_category."' and job_type='".$type."'");

    $result_job = mysqli_num_rows($sql_job);
    if($result_job > 0)
    {
        $found = 1;
        while($row_jobs = mysqli_fetch_array($sql_job))
        {
            $message .= '<h3>'.$row_jobs['job_title'].'</h3>';
        }
    }
}

if(found == 0) {
    $message = '<p id="c_mm">record not found</p>';
}
echo message;
?>

Обратите внимание $found флаг здесь в коде,НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...