使用javascript php将隐藏ID值传递到另一个页面

时间:2018-04-28 14:10:46

标签: javascript php

我正在尝试将隐藏值从页面传递到另一个页面,它只对第一个记录工作正常但是对于其他记录它显示错误 这是代码:

$sql = "SELECT id,jdes,title FROM job";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    ?>
    <input type="hidden" id="hidden_user_id" value="<?php echo  $row["id"]  ?>">
    <h3><?php echo  $row["title"]  ?>:</h3>
    <p class="lead">
      <?php echo  $row["jdes"]  ?> 
    </p>
    <button type="button" id="requestthis" class="btn btn-primary">
      <a href="jobs-inner.php">Request</a>
    </button>
    <?php

  }
} else {
  echo "Nothing to display Yet";
}
?>

作业-inner.php

<?php  

echo $_GET['hidden_id'];

?>

使用Javascript: -

$(function() { //ready function
    $('#requestthis').on('click', function(e){ //click event
        e.preventDefault(); 
        var hidden_id = $('#hidden_user_id').val();
        var url = "jobs-inner.php?hidden_id="+hidden_id;

        window.location.replace(url);
    })
})

错误: -

 Undefined index: hidden_id in C:\wamp64\www\project\jobs-inner.php on line 3

这可能是一个简单的问题,但我是初学者,我无法弄明白。

1 个答案:

答案 0 :(得分:1)

您的价值是独一无二的,但身份证明并非如此。使输入的id唯一,如下所示。

<input type="hidden" id="hidden_user_<?php echo  $row["id"]  ?>" value="<?php echo  $row["id"]  ?>">

但是您必须对下面的代码进行计数,以便根据您拥有的行数进行显示。

<?php  
echo $_GET['hidden_id'];
?>

不使用JavaScript

$sql = "SELECT id,jdes,title FROM job";
$result = $conn->query($sql);
$count = 1;
    if ($result->num_rows > 0) {
    // output data of each row
        while($row = $result->fetch_assoc()) {
        ?>

        <input type="hidden" id="hidden_user_<?php echo $count ?>" value="<?php echo $row["id"] ?>">
        <h3><?php echo  $row["title"]  ?>:</h3>
        <p class="lead"><?php echo  $row["jdes"]  ?></p>
        <form id="<?php echo $count ?>" action="jobs-inner.php?hidden_id=<?php echo $row["id"] ?>" method="post">
        <input type="submit" vaule="Request">
        </form>                     
        <?php
        $count++;  
        }
    } else {
        echo "Nothing to display Yet";
    }

?>