2017-10-16 43 views
0

我对PHP很新,我遇到了问题。我有一个函数,它根据数据库中的一个表上的值的数量生成单选按钮。这些表中唯一的字段是值和属性。这个函数在另一个页面上调用,而我遇到的问题是我希望无论选择哪个按钮都是粘滞的。PHP - 使用粘滞单选按钮的问题

function buildRadio($table) 
{ 

    if (!isset($_SESSION['create_profile'][$table])) 
    { 
     $sql = "SELECT * FROM $table"; 
     $result = pg_query(db_connect(), $sql); 
     while ($row = pg_fetch_array($result)) 
     { 
      echo '<input type="radio" name="'. "$table" .'" value="'.$row['value'].'" />'.$row['property']; 
     } 
    } 
    else 
    { 
     $temp = $_SESSION['create_profile'][$table];    
     echo "<input type='radio' name='$table' value='$temp' checked='checked'>"; 
    } 
} 

是什么在else块是我试图找出用户基于会话信息选择了哪个按钮,与该按钮被粘重新加载页面的尝试。它现在所做的只是创建一个选中的按钮。我不完全确定我应该如何从这里开始实现这一点,并想知道是否有人能给我一点见解。

+1

你的意思是粘性? – WilomGfx

+0

我假设他的意思是:在页面重新加载后检查它。 – andersfylling

+0

是的。如果用户选择一个单选按钮并重新载入表单,该单选按钮仍处于选中状态时需要发生什么。 – Alithvia

回答

0

假设您希望按钮在页面更新/重新加载后不能重置。我会在Javascript中使用localStorage。 Definetly不会向每个点击的按钮发送一个Ajax请求到服务器。

毕竟这与客户端有关,跟踪进度或记住临时选择应该仅限于客户端。

如果客户想要重置他们的选择,但是您已将其存储在说$_SESSION中,该怎么办?这将是一个痛苦,要删除他们的cookies,必须重新登录而不是只清除本地存储。

编辑:你的回声线看起来不好。它应该是: echo '<input type="radio" name="', $table, '" value="', $row['value'], '" />', $row['property']; 使用点是可以的。我只是老派(我猜)。

+0

这有点超出我的意思。这是我的第二个Web开发类。感谢您的建议,尤其是编辑。 – Alithvia

+0

这实际上比建立PHP解决方案更简单。所以我强烈建议使用localStorage来跟踪哪些单选按钮已被检查。由于我之前的陈述,我甚至会说它是处理它的正确方法。 – andersfylling

0

在PHP中,你不能用单引号转义数组变量,然后在数组中使用单引号