如何以html格式发送动态值?

时间:2014-10-31 07:39:46

标签: php html mysql forms

这对专家来说可能很简单。但我无法让它发挥作用。

我的MySql数据库中有一个表,其中包含以下列:Score_idScore

我正在查询此表并在我的网页中显示这些条目。它看起来像这样:

PHP代码的一部分:

<form method="POST">
$i=0;
while ($i < sizeof($score_id)) { 
    // Display the score data
    echo "<span>$score_id[$i]</span><span>$score[$i]</span>";
    echo "<input type=\"submit\" value=\"delete\" name=\"delete_score\">";
    $i++;
}
</form>

显示的结果:

Score Id   Score
   1          5      <delete>
   2         50      <delete>
   3         15      <delete>

当用户点击删除按钮时,我想从表中删除该特定条目。

我如何知道用户点击了特定删除按钮?(或如何发送带有帖子的相应score_id?)

谢谢,

5 个答案:

答案 0 :(得分:1)

在这种情况下您可以使用按钮:

echo '<form method="POST">';
$i=0;
while ($i < sizeof($score_id)) { 
  // Display the score data
  echo "<span>$score_id[$i]</span><span>$score[$i]</span>";
  echo "<button type='submit' value='".$score_id[$i]."' name='delete_score'>Delete</button>";
  echo '<br/>';
  $i++;
}
echo '</form>';

$db = new mysqli('localhost', 'username', 'password', 'database_name');

// same page processing
if(isset($_POST['delete_score'])) {
    $id = $_POST['delete_score'];
    $sql = 'DELETE FROM table_name WHERE score_id = ?';
    $delete = $db->prepare($sql);
    $delete->bind_param('i', $id);
    $delete->execute();

    if($delete->affected_rows > 0) {
        echo 'Delete success!';
    }
}

答案 1 :(得分:0)

我会使用例如Id前缀命名输入字段,然后您可以在后端循环访问id的+“_ delete_score”以删除它。

echo "<input type=\"submit\" value=\"delete\" name=" . $i . "_\"delete_score\">";

答案 2 :(得分:0)

调用JS函数并将分数ID传递给删除....

 echo '<input type="submit" value="delete" name="delete_score" onclick(deleteThis('.$score_id[$i].'))>';

答案 3 :(得分:0)

基于w3school best practices

<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="SELECT Score_id,Score FROM my_table ORDER BY Score_id";

if ($result=mysqli_query($con,$sql))
  {
  // Fetch one and one row
  while ($row=mysqli_fetch_row($result))
    {
    echo "<span>";
    echo $row['Score_id'];
    echo "</span>";
    echo "<span>";
    echo $row['Score'];
    echo "</span>";
    echo "<a href='delete.php?Score_id=".$row['Score_id'].'>Delete</a>"
    }
  // Free result set
  mysqli_free_result($result);
}

mysqli_close($con);
?>

在delete.php文件中,您应该在DELETE语句中编写一个使用参数$ _GET [&#39; Score_id&#39;]的语句

    <?php
        $con=mysqli_connect("localhost","my_user","my_password","my_db");
        // Check connection
        if (mysqli_connect_errno())
          {
          echo "Failed to connect to MySQL: " . mysqli_connect_error();
          }

       // prepare and bind
    $stmt = $conn->prepare("DELETE FROM my_table WHERE Score_id = ?");
    $stmt->bind_param("i", $score_id);

    // set parameters and execute
    $score_id = $_GET['Score_id'];
    $stmt->execute();

   header('Location: previous_page.php');

    $stmt->close();
    $con->close();

        ?>

答案 4 :(得分:0)

您使用GET方法。

echo "<a href='delete.php?score_id=$score_id'>Delete</a>"

转到delete.php并输入:

$score_id = $_GET['score_id'];

然后,您可以继续删除数据库中的特定项目。干杯!