[英]How can I pass a javascript value to php?
我想向我的PHP查询中添加一个javascript值。 代码像这样
<script>
$(document).on('click', '.dropdown-menu li a', function() {
var categoryName = $(this).html();
<?php
$one = mysqli_query($con, "SELECT id FROM tb_category WHERE category_name = '?' ");
?>
})
</script>
我想将categoryName的值放入我在php中进行的查询。 我该怎么做。
今天花几个小时尝试自己弄清楚这个问题。 您可以使用ajax,并在ajax查询中使用data标签发送信息。
$.ajax({ url: 'file goes here',
data: {action: '0'},
type: 'post',
success: function(output) { //action }
});
数据标签为您提供信息。 在您的php中:
$data = $_POST["action"];
<script>
$(document).on('click', '.dropdown-menu li a', function(e) {
e.preventDefault();
var categoryName = $(this).text();
// !! be careful here !! send web safe category name, `$(this).text();` or even better a numeric value.
$.get('runquery.php', {'category': encodeURIComponent(categoryName)}).done(function (data) {
// on success do something if needed
});
})
</script>
将您的PHP / SQL脚本放入runquery.php
您应该使用ajax从单击的div中获取属性,并将其发送到php页面,在该页面中您将收到“ javascript变量”,并通过$ _POST将其用作php变量,如下所示:
<script type="text/javascript">
$(function() {
$(document).on('click', '.dropdown-menu li a', function() {
{
var categoryname = $(this).attr("id");
var dataString = 'categoryname'+ categoryname ;
$.ajax({
type: "POST",
url: "yourphppage.php",
data: dataString,
cache: false,
success: function(html)
{
$(".result").html(html);
}
});
return false;
});
});
现在在您的php页面中:
$categoryname=$_POST['categoryname'];
$one = mysqli_query($con, "SELECT id FROM tb_category WHERE category_name = $categoryname
");
除非您进行AJAX调用 (否则请参见http://api.jquery.com/jquery.get/和其他答案),否则就不会这样。
最简单的解决方案 (如果您没有太多的类别,例如几百个顶部)将在Javascript变量中缓存客户端类别,如下所示:
<script type="text/javascript">
var categoriesCache = <?php
$cache = array();
$result = mysqli_query($con, "SELECT id, category_name FROM tb_category");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$cache[$row["category_name"]] = $row["id"];
}
echo json_encode($cache);
?>;
$(document).on('click', '.dropdown-menu li a', function() {
var categoryName = $(this).html();
var categoryId = categoriesCache[categoryName];
});
</script>
您可以使用Ajax http://www.w3schools.com/jquery/jquery_ajax_get_post.asp来完成此操作
PHP脚本在一个单独的文件中,如:
首先您的JavaScript文件:
$(document).on('click', '.dropdown-menu li a', function() {
var categoryName = $(this).html();
$.post("php-file.php",{cat_Name: categoryName});
});
然后您的php-file.php看起来像:
<?php
$categoryname = $_POST['cat_Name'];
$one = mysqli_query($con, "SELECT id FROM tb_category WHERE category_name = '?' ");
?>
如果您想再次使用它们:
最后添加到您的PHP:
$return = new array();
$return[0] = ;//your results in this array
echo json_encode($return);
那么在您的JavaScript中应如下所示:
$(document).on('click', '.dropdown-menu li a', function() {
var categoryName = $(this).html();
$.post("php-file.php",{cat_Name: categoryName}, function(data){
sccess_function(data);}, "json");
});
然后添加一个函数:
function succsess_function(data){
//do thing here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.