Я новичок в Javascript и PHP. Может ли кто-нибудь сообщить мне, как использовать переменную javascript в переменной php, и я хочу использовать эту переменную php в запросе MySQL для извлечения данных из базы данных MySQL. Можно ли взять переменную javascript прямо в запросе MySQL?
Я пробовал, но не могу получить результат. Я прикрепил код ниже
<script>
var baccount = document.getElementById('accountid');
var bacc = baccount.value;
</script>
<?php
$abcd = '"+bacc+"';
$quer=mysql_query("SELECT * from fpay_user where account_id='$abcd'");
$result=mysql_fetch_array($quer);
$rbal = $result['balance'];
echo $rbal;
?>



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


Это не так просто. Javascript запускается в браузере (клиент), а php - на веб-сервере (хосте). Это два разных компьютера. Чтобы передать данные от клиента к хосту, вы можете сделать http-запрос от javascript к определенному URL-адресу на сервере. Когда сервер отправляет свой ответ, вы можете снова обработать его в javascript.
Пример (с использованием jQuery):
<script>
// success will be called when the server sent a response.
function success(result) {
// result.responseJSON is a javascript object: { balance: 1234 }
let balance = result.responseJSON.balance
}
$.ajax({
url: '/path/to/script.php',
data: {
bacc: baccount.value
},
success: success,
dataType: 'json'
});
</script>
В php вы можете получить переданное значение, выполнить запрос и вернуть результат:
<?php
// get the passed value
$abcd = $_GET['bacc'];
// do the query SAFELY. See explanation below.
$quer = mysql_query("SELECT * from fpay_user where account_id='" . mysql_escape_string($abcd) . "'");
$result=mysql_fetch_array($quer);
// Now return the result as json string
header('Content-Type: application/json');
// This will encode the result as: "{balance: 1234}"
echo json_encode($result);
Одна важная вещь очень. Вы всегда должны дезинфицировать полученные значения чем-то вроде mysql_escape_string. Если вы этого не сделаете, ваше программное обеспечение восприимчиво к SQL-инъекции. Я добавил этот вызов функции в ваш пример.
Есть два скрипта: javascript и php. Какой сценарий? Какая линия?
В javascript возникает ошибка. Я указал правильный путь к script.php, но я все еще получаю ошибку в '/path/to/script.php', этой строке.
Я получаю сообщение об ошибке Uncaught syntaxterror: missing) после списка agrument в строке data: {в программе javascript.
Я понимаю. Извини за это. Исправил код в ответе.
Спасибо за быстрый ответ. Ошибка, которую я получил ранее, была решена, но я получаю сообщение об ошибке, так как не могу прочитать свойство balance of undefined в строке, пусть balance = result.responseJSON.balance. Я получаю вывод в программе php [echo json_encode ($ result); ], но я не могу получить его в javascript.
Я могу решить указанную выше проблему. Используя document.write, я могу получить баланс в браузере, но я не могу использовать этот баланс вне функции success (result) {....}.
Это правильно и по-другому невозможно. Значение доступно только после того, как javascript принял значение номера банковского счета, отправил запрос на сервер и обработал возвращенное значение.
Вам нужно понимать разницу между языком клиента и языком сервера.
В вашем коде JavaScript выполняется в браузере, а PHP выполняется на вашем сервере. Чтобы PHP знал, что произошло в клиенте, ваш клиент должен отправить эту информацию на сервер через строку запроса, сообщение формы или сообщение необработанных данных.
В вашем случае вы можете отправить запрос Ajax из JavaScript на сервер (используя собственный XMLHttpRequest или jQuery)
$.ajax({
type: "POST",
url: url,
data: {bacc:value},
});
Тогда ваш PHP сможет получить к нему доступ через $ _POST ["bacc"]
Поймите, что, хотя вы можете записать его в один и тот же файл (что является плохой практикой), они выполняются в другом месте (на клиенте или сервере).
вы можете использовать javascript для перезагрузки страницы со строкой запроса, переменная является частью строки запроса или, что чаще, использовать ajax для отправки запроса в скрипт php и, таким образом, в базу данных