将javascript变量传递给php mysql选择查询

时间:2014-05-02 19:45:58

标签: javascript php mysql

我在php中运行mysql select查询

<?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变量。我知道客户端变量不能传递给服务器端。但是,由于变量位于同一页面,是否有任何解决方法。

3 个答案:

答案 0 :(得分:5)

为了让你实现这一点 - 我相信 - 你必须使用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;
  }
?>

然后你可以对结果进行JSON编码,并在成功时输出它们。然而,你的PHP脚本必须存在于另一个php文件中。

另外,逃避您的数据。使用准备好的陈述。

答案 1 :(得分:1)

理论上,你可以通过某种ajax调用将vars传递给php。我认为这会像... ...

<强> 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']);

否则,您可以使用:

  • cookie
  • 隐藏输入

<强> PHP:

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

注意:您需要清理数据。使用原始cookie和/或输入值可能会导致一些不太理想的结果。

答案 2 :(得分:0)

在AJAX或Form中使用Method Post !!在Php中发送js变量并使用$ _post [name_of_obj]在php中接收它;