首页 > 解决方案 > 将数据从前端发送到后端到前端

问题描述

嗨,我是使用 JavaScript 的初学者,我有这个带有 JavaScript 代码的 html 页面,它从服务器接收数据并将其显示在当前页面上,我想要做的是使用该数据并将其发送到另一个 PHP 页面我的 SQL 查询以获取结果。

<script>
    var json = sessionStorage.xhr;
    var object = JSON.parse(json);
    var hard =  object["red-fruits"];
    var string = JSON.stringify (hard);
    var stringData = encodeURIComponent(string);
    $.ajax({
        type: "POST",
        url: "http://localhost/web/main.php",
        data: {"dataA" : stringData}, 
        cache: false,
            success: function(){
                console.log("OK");
            }
    });
    var user = sessionStorage.getItem('impData');
    console.log(user);
</script>

这是我的 PHP 页面代码,我在这里所做的是从该 html 页面获取数据“dataA”并将其发送到此 PHP 页面以进行 SQL 查询并获取结果,即“$haha”数组并使用 JavaScript session 函数将其发送回 HTML 页面。但是我的控制台只显示“null”,任何人都可以告诉我我做错了什么或有任何建议将不胜感激。

<?php

$connection = mysqli_connect("localhost","root","","") or 
die("Error " . mysqli_error($connection));
    if (isset($_POST['dataA'])) {
        echo $name = $_POST['dataA'];
    }
    else {
        echo "Error";
    }

$string = str_replace("]", "", str_replace("[", "", str_replace('"','',$falcon)));
$array = explode(',', $string);
$array2= implode("', '",$array);

$sql = // "SQL query"
$result = mysqli_query($connection, $sql) or die("Error in Selecting " . 
mysqli_error($connection));

while($row = mysqli_fetch_array($result)) {
    $haha[] =  $row['row_name'];
}

?>

<script type="text/javascript">
    var tills = <?php echo '["' . implode('", "', $haha) . '"]' ?>;
    console.log (tills);
    sessionStorage.setItem('impData', tills);
</script>

标签: javascriptphphtmlmysql

解决方案


您现在正在以一种奇怪的方式混合 ajax 和会话数据。在您刷新页面之前,您的 javascript 使用的会话数据不会被 php-script 更新。处理数据的正确方法是在“成功”函数中:

$.ajax({
        type: "POST",
        url: "http://localhost/web/main.php",
        data: {"dataA" : stringData},
        dataType : "json",
        cache: false,
            success: function(data){
                console.log(data);
            }
    });

并在您的 PHP 中将您想要发送到浏览器的数据作为 json 字符串输出:

echo json_encode($your_object);

推荐阅读