На самом деле, у меня есть переменная javascript, которую я передаю в переменную PHP и использую эту переменную в качестве запроса MySQL, когда я отправляю запрос, страница перезагружается, и значение переменной javascript завершается, и поэтому запрос не работает Я просто хочу внести изменения в свой код или найти другое подходящее решение для моей проблемы, пожалуйста, помогите мне. Все работает нормально, когда эхо-переменная PHP показывает мне, что проблема только с переменной заключается в запросе моего SQL, что в запросе переменная PHP, которая имеет переменную javascript, не работает.
<script>
var buttontext = "esteem";
<?php
$ff = "<script>document.write(buttontext);</script>";
?>
</script>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "beelist";
$conn=mysqli_connect($servername,$username,$password,$dbname);
error_reporting(0);
$connDB= mysqli_select_db($conn,'beelist');
if ($_POST['sub'])
{
echo $ff;
$code=$_POST['Bid'];
if ($code! = ""){
$query = "SELECT beaconid FROM `customer` WHERE `beaconid` = '$code' && name = '$ff'";
$data = mysqli_query($conn,$query);
$res1=mysqli_fetch_array($data);
if ($res1) {
echo '<script> alert("Beacon found")</script>';
echo '<script> showp();</script>';
}
else {
echo '<script> alert("Beacon ID is wrong!")</script>';}
}else{
echo '<script> alert("Beacon ID is required")</script>';
}
}
?>
@ArtisticPhoenix та же проблема, он не работает, братан
Это никогда не сработает, вы должны понимать отношения между клиентом и сервером. Вероятно, это одна из первых вещей, которую вы должны изучить еще до изучения PHP. По сути, вы должны иметь общее представление о том, как работают запросы и http. Это прозвучало немного грубо, но я имею в виду, что каждый должен с чего-то начинать. Я просто надеюсь избавить вас от многих разочарований, изучив эти концепции заранее.
я знаю, что мне нужно сделать вызов ajax, но мои концепции в ajax не ясны, и мне нужно отправить проект раньше, пожалуйста, помогите мне, если вы можете
Это слишком много кода, вам также придется разделить файл на 2 части. Я думаю, вы могли бы сделать это в одном файле, но это намного грязнее.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как я сказал в комментариях
Where do I start, Client and Server (JS and PHP) are separate. One runs on the server one runs on the clients computer. PHP goes first and as such only PHP can affect JS (as that is part of the output of the PHP) the JS's state cannot be known in PHP as it's on a entirely different computer. Basically you are left with making a request, either from a page reload (such as form submission) or AJAX where you can pass that data back to the server so it can work on it.
По сути, то, что у вас есть сейчас, это $ff, буквально это текст:
$ff = "<script>document.write(buttontext);</script>";
И поскольку вы не повторяете его, он фактически никогда не передается клиенту как часть источника.
Ваш запрос выглядит так:
$query = "SELECT beaconid FROM `customer` WHERE `beaconid` = '$code' && name = '<script>document.write(buttontext);</script>'";
Это слишком широкая тема для меня, чтобы действительно дать вам рабочий ответ, и есть множество руководств, которые могут сделать это лучше, чем я. Но, надеюсь, вы понимаете, что происходит сейчас.
PS. вы можете легко проверить это, выполнив echo $query; сразу после запроса. Также имейте в виду, что вы не должны помещать переменные PHP непосредственно в SQL, иначе вы рискуете атаками типа SQLInjection против вашего сайта. Например, если $_POST['Bid'] = "' OR 1 --, ваш запрос будет таким:
$query = "SELECT beaconid FROM `customer` WHERE `beaconid` = '' OR 1 --' && name = '<script>document.write(buttontext);</script>'";
Где -- — это начало комментария в MySQL. Итак, теперь я просто выбрал всю вашу таблицу, внедрив команды SQL в ваш запрос, что очень плохо.
Ваше здоровье!
делай как раньше
С чего начать? Клиент и сервер (JS и PHP) разделены. Один работает на сервере, другой работает на клиентском компьютере. PHP идет первым, и поэтому только PHP может влиять на JS (поскольку это часть вывода PHP), состояние JS не может быть известно в PHP, поскольку оно находится на совершенно другом компьютере. По сути, вам остается сделать запрос либо с перезагрузки страницы (например, при отправке формы), либо с помощью AJAX, где вы можете передать эти данные обратно на сервер, чтобы он мог с ними работать.