我在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变量。我知道客户端变量不能传递给服务器端。但是,由于变量位于同一页面,是否有任何解决方法。
答案 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']);
否则,您可以使用:
<强> 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中接收它;