Как использовать и проверить условие <? Php if ($ loggedin):?> If else внутри этого кода javascript для отражения нажатия или нажатия кнопки со стороны сервера?

Я хочу проверить этот '<?php if ($loggedin) : ?>' php, если код условия внутри кода JavaScript, чтобы показать одну из кнопок, выделенных ниже жирным шрифтом в search-box.php, кстати, у меня есть идея сделать это: я могу использовать этот php $ loggedin код за пределами этого js и сохраните переменную js с true или false и, соответственно, я могу показать кнопку, используя переменную js, но я не хочу этого делать, потому что я хочу скрыть код кнопки со стороны клиента, поэтому мне нужно его поместить в php. Я хочу поместить эту кнопку в код result+= js, потому что он будет отображаться как вывод на веб-странице search-box.php при поиске в текстовом поле.

файл search-backend.php

<?Php
require "config2.php"; // Database Connection 
///////

////  Collect options from table ///
@$search_text = $_GET['txt'];
//echo $search_text;
/////////// Start of preparation for Paging //////

@$end_record = $_GET['endrecord'];// 
//$end_record=20;
if (strlen($end_record) > 0 AND (!is_numeric($end_record))) {
    echo "Data Error 1";
    exit;
}

$limit = 5; // Number of records per page

if ($end_record < $limit) {
    $end_record = 0;
}

switch (@$_GET['direction'])   // Let us know forward or backward button is pressed
{
    case "fw":
        $start_record = $end_record;
        break;

    case "bk":
        $start_record = $end_record - 2 * $limit;
        break;

    default:
        //echo "Data Error";
        //exit;
        $start_record = 0;
        break;
}
if ($start_record < 0) {
    $start_record = 0;
}
$end_record = $start_record + $limit;


////////// End of preparation for paging /////
$search_text = trim($search_text);
$message = '';

$query = '';
$query2 = '';


$kt = preg_split("/[\s,]+/", $search_text);//Breaking the string to array of words

// Now let us generate the sql 
while (list($key, $val) = each($kt)) {
    if (!ctype_alnum($val)) {
        $message .= " Data Error 2 ";
        //echo "Data Error";
        $main = array('value' => array("message" => "$message"));

        exit(json_encode($main));
    }
    if ($val <> " " and strlen($val) > 0) {
        $query .= " keyyo like '%$val%' or ";
        $query2 .= " keyyo like '%$val%' and ";
    }
}// end of while

$query = substr($query, 0, (strLen($query) - 3));
$query2 = substr($query2, 0, (strLen($query2) - 4));
// this will remove the last or from the string. 

$q = "select count(id) from users where confirmcode='y' and " . $query;
$q2 = "select count(id) from users where confirmcode='y' and " . $query2;
$query = 'select `id`, `subject` from users where ' . $query . " limit $start_record,$limit ";
$query2 = 'select `id`, `subject` from users where ' . $query2 . " limit $start_record,$limit ";
///////////////End of adding key word search query //////////
//echo $query;
$message .= $query;
$records_found = $dbo->query($q)->fetchColumn(); // Number of records found
$records_found2 = $dbo->query($q2)->fetchColumn(); // Number of records found

$records_found_total = $records_found + $records_found2;
$row = $dbo->prepare($query);
$row->execute();
$result = $row->fetchAll(PDO::FETCH_ASSOC);

$row2 = $dbo->prepare($query2);
$row2->execute();
$result2 = $row2->fetchAll(PDO::FETCH_ASSOC);


$result = array_merge($result2);
//$nume=count($result);
if (($end_record) < $records_found_total) {
    $end = "yes";
} else {
    $end = "no";
}

if (($end_record) > $limit) {
    $startrecord = "yes";
} else {
    $startrecord = "no";
}

$main = array(
    'data' => $result,
    'value' => array(
        "no_records" => "$records_found",
        "no_records2" => "$records_found2",
        "message" => "$message",
        "status1" => "T",
        "endrecord" => "$end_record",
        "limit" => "$limit",
        "end" => "$end",
        "startrecord" => "$startrecord"
    )
);
echo json_encode($main);
////  End of data collection from table /// 
?>

файл search-box.php

<?php $loggedin = isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true; ?>
<html>
<head>
    <title>Ajax keyword search</title>
    <META NAME = "DESCRIPTION" CONTENT = " ">
    <META NAME = "KEYWORDS" CONTENT = "">
    <link rel = "stylesheet" href = "style.css" type = "text/css">
    <script type = "text/javascript">
        function ajaxFunction(val) {
            var httpxml;
            try {
                // Firefox, Opera 8.0+, Safari
                httpxml = new XMLHttpRequest();
            }
            catch (e) {
                // Internet Explorer
                try {
                    httpxml = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e) {
                    try {
                        httpxml = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e) {
                        alert("Your browser does not support AJAX!");
                        return false;
                    }
                }
            }

            function stateChanged() {
                if (httpxml.readyState == 4) {
                    /////////////

                    var myarray = JSON.parse(httpxml.responseText);
                    //alert(httpxml.responseText);
                    // Before adding new we must remove previously loaded elements
                    for (j = document.getElementById('subject').length - 1; j >= 0; j--) {
                        document.getElementById('subject').remove(j);
                    }
                    var str = '';
                    var result = '';

                    for (i = 0; i < myarray.data.length; i++) {


                        str += ''; // Storing options in variable
                        result += +myarray.data[i].id + ',' + myarray.data[i].subject + '<br>';
                        result += ("<?php **if ($loggedin) { echo "<button>Push</button>"; } else { echo "<button>Pop</button>";} ?>");
                    **

                    }

                    ///////////

                    document.getElementById("subject").innerHTML = str;
                    document.getElementById("result").innerHTML = result;

                    if (myarray.value.status1 != 'T') {
                        document.getElementById("msg").innerHTML = "About " + myarray.value.no_records2 + " & " + myarray.value.no_records + " results " + " Message : " + myarray.value.message;
                    } else {
                        document.getElementById("msg").innerHTML = "About " + myarray.value.no_records2 + " & " + myarray.value.no_records + " results ";
                    }
                    var endrecord = myarray.value.endrecord

                    document.getElementById("navigation").innerHTML = "<table width=700><tr><td width=350><input type=button id=\'back\' value=Prev onClick=\"ajaxFunction('bk'); return false\"></td><td width=350 align=right><input type=button value=Next id=\"fwd\" onClick=\"ajaxFunction(\'fw\');  return false\"></td></tr></tr> </table>";


                    myForm.st.value = endrecord;
                    if (myarray.value.end == "yes") {
                        document.getElementById("fwd").style.display = 'inline';
                    } else {
                        document.getElementById("fwd").style.display = 'none';
                    }


                    if (myarray.value.startrecord == "yes") {
                        document.getElementById("back").style.display = 'inline';
                    } else {
                        document.getElementById("back").style.display = 'none';
                    }

                }
            }

            var url = "search-backend.php";
            var str = document.getElementById("keyword").value;
            var myendrecord = myForm.st.value;

            url = url + "?txt = " + str;
            url = url + "&endrecord = " + myendrecord;
            url = url + "&direction = " + val;
            url = url + "&sid = " + Math.random();
            //document.getElementById("txtHint").innerHTML=url
            httpxml.onreadystatechange = stateChanged;
            httpxml.open("GET", url, true);
            httpxml.send(null);
            document.getElementById("msg").innerHTML = ":)...";
            document.getElementById("msg").style.display = 'inline';

            ////////////////////////////////
        }
    </script>
</head>

<body>
<div id=msg style = "position:absolute; width:300px; height:25px; 
            z-index:1; left: 400px; top: 0px; 
            border: 1px none #000000"></div>

<br><br><br>
<form name = "myForm">
    <input type=hidden name=st value=0>
    <input type = "text" onkeyup = "ajaxFunction('');" name = "keyword" id = "keyword" list = "subject" size=70/>

    <datalist id = "subject">
    </datalist>

    <br><br>
    <div class='t1' id='result'>
    </div>
</form>
<div class='t1' id='navigation'>
</div>

</body>
</html>

вывод кода search-box.php:

Как использовать и проверить условие &lt;? Php if ($ loggedin):?&gt; If else внутри этого кода javascript для отражения нажатия или нажатия кнопки со стороны сервера?

Это не совсем понятно, о чем вы спрашиваете - PHP выполняется на стороне сервера, а JS выполняется на клиенте. Вы можете выполнить PHP и сохранить его в глобальной переменной JS - вы сохраните значение, а не код PHP.

Matthew Brent 02.05.2018 22:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
48
1

Ответы 1

Вероятно, вы могли бы упростить код, чтобы показать только вашу проблему. Интересно, поможет ли этот код? Обновлено: (хороший комментарий, @Munim Munna): это элементарный пример передачи условия PHP в javascript на странице. Простите, если это слишком элементарно. Я прокомментировал код.

<?php
  // change "true" to "false" to see the other condition.
  $loggedin = (true) ? 1 : 0; // this is the result condition of your extensive processing 
?>  
<html><!-- normal HTML structure -->
<head>
<script>
window.onload = function() { // an elementary example of checking a condition supplied from the server (PHP)
  "use strict";
  var elt = document.getElementById("div1"); // the element to store the results
  if (<?php echo $loggedin ?>) { // the PHP variable is inserted
    // you can do your "highlighting" or "hiding" or whatever here         
    elt.innerHTML = "Is logged in"; } // if true
  else {
    // you can do your "highlighting" or "hiding" or whatever here         
    elt.innerHTML = "Is NOT logged in"; } // if false
}    
</script>
</head>
<body>
<div id = "div1">
</div>
</body>
</html>

Пожалуйста, добавьте некоторые пояснения к предоставленному коду и избегайте вопросов в ответ. от Очередь на публикацию низкого качества

Munim Munna 03.05.2018 07:39

@Munim Munna Я не знаю, заставит ли вас редактировать "@Munim Munna" в моем ответе или нет, поэтому я также комментирую. Спасибо.

dcromley 03.05.2018 21:12

Нет, ответ на редактирование не отправил уведомление, но вы неправильно поняли мой предыдущий комментарий. Под объяснением я не имел в виду объяснять каждую строку вашего кода, сами строки кода говорят сами за себя, но в ответах должно быть небольшое введение о том, в чем была проблема, если таковая была, какой подход предлагается и реализуется в следующем коде. , Помогает людям понимать лучше и быстрее.

Munim Munna 03.05.2018 21:24

Большое спасибо @dcromley, эта логика кода сработала и решила мою проблему .. :)

user1952394 04.05.2018 21:40

@Munim Munna - Пожалуйста. Обычный ответ здесь - «принять» ответ (или как там это слово).

dcromley 05.05.2018 03:34

Другие вопросы по теме