【问题标题】:Pass jscolor from one php page to another将 jscolor 从一个 php 页面传递到另一个
【发布时间】:2019-07-29 12:42:14
【问题描述】:

我正在使用 jscolor 并尝试将用户选择的颜色从 test1.php 传递到 test2.php,然后转换为 rgb。不知何故无法正常工作。

如果我将表单帖子更改为test1.php,它会检索到正确的值,但在更改action="test2.php" 时则无法正常工作。

test1.php:

<script>
function update(jscolor) {
    // 'jscolor' instance can be used as a string
    document.getElementById('rect').style.backgroundColor = '#' + jscolor
}
</script>

 <form action="test2.php" method="post">
     Select you favorite color:
     <input name="clr1" class="jscolor {onFineChange:'update(this)'}">
     <input type="submit" name="submit">
 </form>
 <p id="rect" style="border:1px solid gray; width:161px; height:100px;">

<?php 
  session_start();

  if(isset($_POST['clr1'])) { 
      $selected_color = $_POST['clr1']; 
      $_SESSION['bgcolors'] = $selected_color;
  }
?>

test2.php:

session_start();
$selected_color = $_SESSION['bgcolors'];
echo $selected_color;
echo "<br>";
list($r, $g, $b) = array_map('hexdec', str_split($selected_color, 2));

$bgcolor2 = $r . "," . $g . "," .$b;
echo $bgcolor2;

【问题讨论】:

    标签: javascript php jscolor


    【解决方案1】:

    session_start这个代码之后添加test2.php

     if (isset($_POST['clr1'])) { 
        $selected_color = $_POST['clr1']; 
        $_SESSION['bgcolors'] = $selected_color;
     }
    

    【讨论】:

    • 天啊,我的代码实际上很好,我很惊讶,我只需要移动它。效果很好,谢谢。请你帮我理解我做错了什么的逻辑吗?我认为需要 $_POST 从表单中获取数据(在表单所在的同一页面中),但我不知道表单数据实际上是传递给操作 .php,否则我不知道如何在 test2.php 中获取“clr1”
    • 浏览器将数据发送到在表单的操作字段中分配的路由(在您的情况下为test2.php)。
    • 非常感谢potiev,感谢您的回答。
    • 很高兴为您提供帮助
    【解决方案2】:

    在 php 第 2 页中,您将希望通过使用 session_start 启动会话来检索变量,然后您可以使用 $_SESSION['bgcolors'] 访问它

    但是我可以看到您的代码存在问题,因为您没有首先想到调用 session_start。

    总是无条件地调用 session_start。 在页面上输出任何内容之前,请始终调用 session_start。

    在此堆栈响应中可以看到 What is proper way to calling session_start()

    【讨论】:

    • 两个页面,test1.php 和 test2.php 都有 session_start();在第一行 php
    • 是的,但是该部分 php 代码必须位于文档中任何类型的 HTML 之上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多