Как присвоить возвращенную функцию Javascript переменной PHP и использовать в SQL-запросе?

#php #javascript #sql #get

#php #javascript #sql #получить

Вопрос:

Я использую Javascript для получения параметра URL-адреса ‘member_id’, а затем мне нужно присвоить это значение переменной PHP, которую я использую в SQL-запросе. Когда я просто повторяю переменную PHP, все выглядит хорошо, но если я пытаюсь включить переменную PHP в SQL-запрос, который я отправляю через POST, я получаю ошибку с SQL-запросом.

     <script>
var param1var = getQueryVariable("member_id");
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("amp;");
  for (var i=0;i<vars.length;i  ) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  alert('Query Variable '   variable   ' not found');
}
</script>

<?php $foo="<script type='text/javascript'>
document.write(getQueryVariable('member_id'));
</script>";
?>
 

Ошибка SQL: * У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с ‘text / javascript’> document.write(getQueryVariable(‘member_id’)); ‘)’ в строке 1*

Ответ №1:

PHP выполняется на сервере, Javascript выполняется на клиенте. Все, что делает ваш php-чанклет, — это вывод небольшого фрагмента Javascript. этот javascript НЕ выполняется на сервере. Он отправляется клиенту и выполняется в браузере спустя долгое время после завершения работы PHP.

Чтобы отправить данные из Javascript обратно в PHP, вы должны использовать вызов AJAX или какую-либо обычную отправку формы.

Ответ №2:

Это потому, что PHP запускается на сервере, а ваш JS выполняется на клиенте. Кроме того, вы можете сделать что-то по-другому, поэтому в JS:

 <script type="text/javascript">
    var myval = '<?php echo $myphpval ?>';
</script>
 

Это возможно, потому что PHP выполняется на сервере до того, как JS выполняется на клиенте. Однако, если вы хотите отправить значение JS в PHP-скрипт, вам нужно будет сделать это после загрузки DOM, обычно с помощью вызова AJAX.

Комментарии:

1. Это моя проблема, передача переменной в sql-запрос, поэтому я не думаю, что смогу сделать это в обратном направлении.

2. Да, я упомянул это просто как в сторону. Смотрите мой последний пункт — или сообщение Марка Б. — о том, что делать вместо этого 🙂