【问题标题】:Sending data from front-end to back-end to front-end从前端发送数据到后端到前端
【发布时间】:2018-05-24 05:27:35
【问题描述】:

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

<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 会话函数将其发送回 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>

【问题讨论】:

  • 不要混合使用 PHP 和 JavaScript。使用隐藏输入将数据从 Php 传递到 JavaScript

标签: javascript php html mysql


【解决方案1】:

您现在正在以一种奇怪的方式混合 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);

【讨论】:

  • 所以我只能将 json 字符串发送回 html 页面?但是如何在不使用会话的情况下将其发送回 html 页面?
  • 您不需要会话来发回数据。您请求的页面返回一个 json 字符串。您的 ajax 调用做了两件事:它请求一个页面并收到答案。该请求是对“localhost/web/main.php”宽度数据“dataA”的 POST,它会在“data”中收到您的 php 页面的答案。
  • 等一下,我如何访问我从 php 页面得到的答案?
  • 在 $.ajax() 里面你会看到函数成功:function(data){ console.log(data); } 参数 data 包含从页面接收到的所有数据。见:api.jquery.com/jquery.ajax
  • 哦,是的,我已经知道了,谢谢,真的很感激。
猜你喜欢
  • 2022-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-02
相关资源
最近更新 更多