我想在我的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中创建的查询中。我该怎么做。
答案 0 :(得分:0)
今天花几个小时试图解决这个问题。您可以使用ajax,并使用ajax查询中的数据标记发送信息。
$.ajax({ url: 'file goes here',
data: {action: '0'},
type: 'post',
success: function(output) { //action }
});
数据标记为您提供信息。 在你的php:
$data = $_POST["action"];
答案 1 :(得分:0)
<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
中答案 2 :(得分:0)
你应该使用ajax从你点击的div中获取属性并将其发送到php页面,在那里你会收到&#34; javascript变量&#34;并将其用作$ _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
");
答案 3 :(得分:0)
除非您进行 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>
答案 4 :(得分:0)
您可以使用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
}