Как определить var в PHP от jquery

Поэтому я уже задал здесь несколько вопросов и исправил свои проблемы,но я думаю,что они растут, а не идут вниз, lol.Моя проблема теперь в том, что я получаю «Undefined index» ошибку.Оставлю картинку с ошибкой здесь .Я попытался добавить переменные, чтобы определить свой fsearch.Пробовал такие вещи, как

$fsearch = mysqli_escape_string($connect, $_POST['fsearch']);

А еще проще хотелось.

$fsearch = $_POST['fsearch'];

Но это не работает.Вот код.

jQuery(document).ready(function ($) {
	$("#food_search").keyup(function(event){
		var search_term =$(this).val();
$.ajax({
	type:"POST",
	url:"/Food-Search",
	data:{fsearch:search_term},
	success:function(res){
		$("#food_search_result").html(res);
	},
	error: function (xhr, ajaxOptions, thrownError) {
           alert(xhr.status);
           alert(xhr.responseText);
           alert(thrownError);
       }
        });
	});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!----------------------------------------------------------------
                              HTML
----------------------------------------------------------------->

<form method="POST">
<p>Търсене на храни: <input type="text" name="fsearch" id="food_search"></p>
</form>
<!----------------------------------------------------------------
                             PHP
-----------------------------------------------------------------><?php

$hostname = "localhost";
$username = "name";
$password = "password";
$databaseName = "dbName";
$connect = mysqli_connect($hostname, $username, $password, $databaseName);

if (!empty($_POST['fsearch'])) {
   $fsearch = mysqli_escape_string($connect, $_POST['fsearch']);
   $req = $connect->prepare('SELECT * FROM food_data_bg WHERE title LIKE "%".$fsearch."%"');
   $req->execute(array(
     'fsearch'=>'%'.$_POST['fsearch'].'%'
));
   if($req->rowCount()==0){
    echo 'Не бяха намерени резултати!';
}
else{
while($foodsearch=$req->fetch()){
?>
<div class="search-result">
&nbsp; &nbsp; <img src="<?php echo $data['fimage']; ?>" class="fimage"/>
&nbsp; &nbsp; <span class="result-title"><?php echo $data['title'];?></span><br>
&nbsp; &nbsp; <span class="calories-total"><?php echo $data['calories total'];?></span><br>
</div>
<?php
}
}
}
?>

Код используется для поиска, он должен получить значение #food-search(поле ввода) на каждом ключе и отправить его на PHP,который должен проверить совпадения в базе данных и распечатать его.(Я думаю, что я получил еще 1 ошибку, распечатав результат на странице PHP и вернув его на java, чтобы напечатать его в #food_search_resultdiv)

1 ответ

  1. Надеюсь, это поможет.

    PHP-код

    $hostname = "localhost";
    $username = "root";
    $password = "";
    $databaseName = "stackoverflow";
    if (!empty($_POST['fsearch'])) {    
    $fsearch = $_POST['fsearch'];
    $mysqli = new mysqli($hostname , $username, $password, $databaseName); 
    if($mysqli->connect_error)
    {
    die("$mysqli->connect_errno: $mysqli->connect_error");
    }
    $query = "SELECT * FROM food_data_bg where title LIKE ?";
    $stmt = $mysqli->stmt_init();
    if(!$stmt->prepare($query))
    {
    print "Failed to prepare statement\n";
    }
    else
    {
    $searchVar = "%" . $fsearch . "%";
    $stmt->bind_param("s", $searchVar);
    
    $stmt->execute();
    $result = $stmt->get_result();
    
    if(!$result->num_rows){
    echo 'Не бяха намерени резултати!';
    }       
    while ($row = $result->fetch_array())
    {            
    ?>
    <div class="search-result" style='clear:both; border:1px solid red;'>
    <img src="<?php //echo $row['fimage']; ?>" class="fimage"/>
    <span class="result-title"><?php echo $row['title'];?></span><br>
    <span class="calories-total"><?php echo $row['calories total'];?></span><br>
    </div>
    <?php        
    }     
    }
    $stmt->close();
    $mysqli->close();
    }
    

    HTML-код

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
    jQuery(document).ready(function ($) { 
        $("#food_search").keyup(function(event){
            var search_term =$(this).val();
            console.log(search_term);
    $.ajax({
        type:"POST",
        url:"Food-Search.php",
        data:{fsearch:search_term},
        success:function(res){
            $("#food_search_result").html(res);
            console.log(res);
        },
        error: function (xhr, ajaxOptions, thrownError) {
               alert(xhr.status);
               alert(xhr.responseText);
               alert(thrownError);
           }
            });
        });
    });
    </script>
    
    <!----------------------------------------------------------------
                                  HTML
    ----------------------------------------------------------------->
    
    
    
    <form method="POST">
    <p>Търсене на храни: <input type="text" name="fsearch" id="food_search"></p>
    </form>
    <!----------------------------------------------------------------
                                 PHP
    ----------------------------------------------------------------->
    
    <div style="border:#FF0000;clear:both; padding:10px;min-height:300px;" id="food_search_result"></div>