简体   繁体   English

如何将PHP变量与Typeahead变量一起传递

[英]How to pass PHP variables along with a Typeahead variable

I have cut this down to be a simple as possible. 我将其简化为尽可能简单。 I create a typeahead variable that works perfectly. 我创建了一个完美的预输入变量。 but I need to pass two other variables $php_var1 and $php_var2 that are unrelated to the typeahead. 但是我需要传递其他两个与$ ahead无关的变量$ php_var1和$ php_var2。 The PHP variables are defined in start.php. PHP变量在start.php中定义。 The typeahead script calls search_script.php then calls cart.php. 提前输入脚本调用search_script.php,然后调用cart.php。 cart.php is were I will need the two PHP variables to be passed to. cart.php是我将需要将两个PHP变量传递给的地方。 Thanks in advance for any help 预先感谢您的任何帮助

start.php start.php

<?php
  $php_var1 = "my php variable 1";
  $php_var2 = "my php variable 2";
?>


<script>

$(document).ready(function() {

    var php_var1 = <?php echo $php_var1; ?>;
    var php_var2 = <?php echo $php_var2; ?>;


    $('#my_input').typeahead({
        source: function(query, result) {
            $.ajax({
                url: "search_script.php",
                method: "POST",
                data: {
                    query: query
                },
                dataType: "json",
                success: function(data) {
                    result($.map(data, function(item) {
                        return item;

                    }));
                }

            })
        },
        updater: function(item) {
            location.href = 'cart.php?shop_name=' + item
            return item
        }
    });

    });

</script>

<form action="cart.php" action="post">

<input type="text"  id="my_input" placeholder="Typeahead Search" />

</form>

search_script.php search_script.php

<?php

$php_var1  = isset($_REQUEST['php_var1']) ? $_REQUEST['php_var1'] : "empty";
$php_var2  = isset($_REQUEST['php_var2']) ? $_REQUEST['php_var2'] : "empty";

$connect = mysqli_connect($servername, $username, $password, $dbname);
$request = mysqli_real_escape_string($connect, $_POST["query"]);
$query = " SELECT * FROM all_shops WHERE p_shop_name LIKE '%".$request."%'";

$result = mysqli_query($connect, $query);

$data = array();

if(mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result))
{
$data[] = $row["p_shop_name"];
}
echo json_encode($data);

}
?>

cart.php cart.php

$php_var1  = isset($_REQUEST['php_var1']) ? $_REQUEST['php_var1'] : "empty";
$php_var2  = isset($_REQUEST['php_var2']) ? $_REQUEST['php_var2'] : "empty";

echo $php_var1;
echo $php_var2;

?>

You need quotes around the php output in order to generate javascript strings 您需要在php输出中加上引号,以生成javascript字符串

var php_var1 = "<?php echo $php_var1; ?>";
var php_var2 = "<?php echo $php_var2; ?>";

Stackoverflow is an excellent resource, but sometimes you don't get the answer, so you need to persevere and keep trying. Stackoverflow是一个很好的资源,但是有时您找不到答案,因此您需要坚持不懈并继续尝试。 I worked on this all day yesterday and just couldn't figure it out. 昨天我整天都在工作,只是想不通。 Woke up this AM and it came to me. 早上醒来,它就来了。 The answer is as follows. 答案如下。 In the typeahead script change the following line 在预输入脚本中更改以下行

location.href = 'cart.php?shop_name=' + item      

to

location.href = 'cart.php?shop_name=' + item + '&php_var1=<?php echo $php_var1 ?>' + '&php_var2=<?php echo $php_var2 ?>'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM