передать переменную javascript в php mysql select query

Я запускаю запрос выбора mysql в php, как это

<?php $getvalue="SELECT id,name from table1 WHERE column1='$var1' and column2='$var2'"; $result=mysql_query($getvalue) or die(mysql_error()); while($row=mysql_fetch_array($result)){ extract($row); echo $name; } ?> 

var1 и var2 являются переменными javascript на одной странице. Я знаю, что переменная стороне клиента не может быть передана на сервер. Но есть ли какое-либо обходное решение, поскольку переменные находятся на одной странице.

Для того, чтобы это произошло, я считаю, вы должны использовать AJAX.

Код будет выглядеть так:

  $.ajax({ url: 'your_script.php', type: 'POST', data: {var1: javascript_var_1, var2: javascript_var_2}, success: function(data) { console.log("success"); } }); 

Ваш PHP будет выглядеть примерно так (без учета кодировки JSON:

 <?php $var1 = $_POST['var1']; $var2 = $_POST['var2']; $getvalue="SELECT id,name from table1 WHERE column1='$var1' and column2='$var2'"; $result=mysql_query($getvalue) or die(mysql_error()); while($row=mysql_fetch_array($result)){ extract($row); echo $name; } ?> в <?php $var1 = $_POST['var1']; $var2 = $_POST['var2']; $getvalue="SELECT id,name from table1 WHERE column1='$var1' and column2='$var2'"; $result=mysql_query($getvalue) or die(mysql_error()); while($row=mysql_fetch_array($result)){ extract($row); echo $name; } ?> 

Затем вы можете JSON кодировать результаты и в значительной степени выводить их на успех. Однако ваш php-скрипт должен жить в другом php-файле.

Кроме того, избегайте данных. Используйте подготовленные заявления.

Теоретически вы можете передать vars на php через какой-то вызов ajax. Я думаю, что это будет похоже на …

JavaScript:

 var data = { 'var1': $('selector').val(), 'var2': $('selector').val() }; $.ajax({ type: 'post', url: 'path-to-your-file.php', data: data, timeout: 50000 }).done(function(response) { console.log(response); }).fail(function(error) { // uh-oh. }); 

PHP:

 <?php print_r($_POST['data']); 

В противном случае вы можете использовать:

  • печенье
  • скрытый ввод

PHP:

 <?php ... column1='$_COOKIE["mycookie1"]' and column2='$_COOKIE["mycookie1"]'"; ... column1='$_POST["hidden1"]' and column2='$_POST["hidden2"]'"; 

ПРИМЕЧАНИЕ. Вы хотите дезинформировать данные. Использование raw cookie и / или входных значений может привести к некоторым менее желательным результатам.

Использовать сообщение метода в AJAX или форме! Чтобы отправить переменную js в Php и получить ее в php, используя $ _post [name_of_obj];