0

我的单个 PHP 页面上有多个表单。一切看起来像这样:

    <form id="test_form_1" action="test_submit.php" method="post" name="test_form">
    <label>This is Question #1:</label>
    <p>
      <label>
        <input type="radio" name="Question1" value="ans1" id="Question1_0">
        Answer1</label>
      <br>
      <label>
        <input type="radio" name="Question1" value="ans2" id="Question1_1">
        Answer2</label>
      <br>
 <button type="submit" name="btnSubmit" id="btnSubmit">Submit</button>
    </form>

ID每种形式都不同,如test_form_1, test_form_2, test_form_3, 等等。一旦 PHP 决定用户属于哪个 ID,我将通过 HEREDOCS 调用这些表单。

然后我使用 JavaScript 在 5 秒后自动提交表单。

<script>
window.setTimeout(function() {
    document.getElementById('test_form_1').submit();
}, 5000);
</script>

这里是HEREDOCS:

$test1= <<<HTML
<table>Month 1 Test.</table>
HTML;
$test2= <<<HTML
<table>Month 2 Test.</table>
HTML;
//and so on...

这是PHP部分:

<?php
if($user_category == test1){
echo"test1";
}
if($user_category == test2){
echo"test2";
}

我的问题:是否可以仅传递用户实际所属的表单IDgetElementById这样它只会将该表单提交给用户实际所属的数据库。或者有没有更好的选择来实现这一目标?

4

4 回答 4

1

我不知道你的 PHP 代码,但你可以这样做(假设 id 位于 $ID 中)

<script>
window.setTimeout(function() {
    document.getElementById('test_form_<?=$ID;?>').submit();
}, 5000);
</script>
于 2013-07-09T09:18:15.323 回答
1

尝试这个 :

<script>
  var userID = "<?php echo $userID ?>"; // For example

  window.setTimeout(function() {
    document.getElementById('test_form_'+ userID).submit();
  }, 5000);
</script>
于 2013-07-09T09:16:25.650 回答
1

如果您的 user_id 存储在会话中,那么您可以这样做:

<script>
  <?php session_start(); ?>
  var id= <?php echo $_SESSION['user_id']; ?>

  window.setTimeout(function() {
    document.getElementById('test_form_'+ id).submit();
  }, 5000);
</script>
于 2013-07-09T09:20:31.697 回答
0

连接userID到? 在 PHP 脚本中formID通过 a 来跟踪它是哪个用户不是更容易吗?session variable这样,您就不能在剧本中作弊,并投票给其他人。

因为如果您将用户 ID 保存在脚本中的变量中,则可以轻松地将其更改为他/她想要的。反过来,投票给他/她想要的任何用户。

因此,当用户登录时,请执行以下操作:

<?php
session_start();
$_SESSION['sess_userID'] = $userID_of_the_loggedin_user;
?>

然后在您的远程脚本文件中test_submit.php

<?php
session_start();
// Grab $_POST data and such
// Then perform something with $_SESSION['sess_userID'];
// Like SQL; "UPDATE votes SET answer=10 WHERE userID=$_SESSION['sess_userID']"
// But have in mind the SQL-injection.
?>
于 2013-07-09T09:24:54.173 回答