如何在html输入名称中使用php变量

如何在html输入名称中使用php变量,php,html,variables,input,dynamic,Php,Html,Variables,Input,Dynamic,我一直对php问题很感兴趣,我想我应该问一个问题,希望我能在这里得到帮助 我有一个动态html表单,带有输入名为php变量的radio,但无法获取单选按钮的值。以下是php和html代码: if(isset($_POST["title"])) { $count = count($_POST["title"]); for($i=0;$i<$count;$i++) { if(!empty($_POST["title"][$i])) { $pid

我一直对php问题很感兴趣,我想我应该问一个问题,希望我能在这里得到帮助

我有一个动态html表单,带有输入名为php变量的radio,但无法获取单选按钮的值。以下是php和html代码:

if(isset($_POST["title"])) {            
$count = count($_POST["title"]);
for($i=0;$i<$count;$i++) {
    if(!empty($_POST["title"][$i])) {
        $pid = intval($_POST["pid"][$i]);
        $title = $_POST["title"][$i];
        $available = $_POST["{$pid}"];
        //exit;
        $sql = "UPDATE tracks SET title='$title', available='$available', WHERE id='$pid'"; 
        $query = mysqli_query($db_connect, $sql);
    }
}
$count++;
if(isset($_POST[“title”]){
$count=计数($_POST[“title”]);

对于($i=0;$i),代码中需要更改的内容很少,例如:

  • 更改此声明

    $available = $_POST["{$pid}"];
    
    $available = $_POST["{$pid}"];
    

  • 您的
    更新
    查询错误

    $sql = "UPDATE tracks SET title='$title', available='$available', WHERE id='$pid'";
                                                                    ^ see this comma
    
    从查询中删除此逗号

  • for
    循环之后使用此
    $count++;
    没有意义,因此也删除此语句

更新: 从你的评论来看

…此错误是由于未选中或选中单选按钮造成的。是否知道如何再次验证未选中的单选按钮

您需要在代码中更改两件事,例如:

  • 更改此声明

    $available = $_POST["{$pid}"];
    
    $available = $_POST["{$pid}"];
    

  • 以增量方式构造
    UPDATE
    查询,如下所示:

    $sql = "UPDATE tracks SET title='$title'";
    if(!empty($available)){
        $sql .= ", available='$available'";
    }
    $sql .= " WHERE id='$pid'";
    


旁注:了解,因为现在您的查询容易受到SQL注入攻击。下面是一篇很好的文章。

您的代码中需要更改的内容很少,例如:

  • 更改此声明

    $available = $_POST["{$pid}"];
    
    $available = $_POST["{$pid}"];
    

  • 您的
    更新
    查询错误

    $sql = "UPDATE tracks SET title='$title', available='$available', WHERE id='$pid'";
                                                                    ^ see this comma
    
    从查询中删除此逗号

  • for
    循环之后使用此
    $count++;
    没有意义,因此也删除此语句

更新: 从你的评论来看

…此错误是由于未选中或选中单选按钮造成的。是否知道如何再次验证未选中的单选按钮

您需要在代码中更改两件事,例如:

  • 更改此声明

    $available = $_POST["{$pid}"];
    
    $available = $_POST["{$pid}"];
    

  • 以增量方式构造
    UPDATE
    查询,如下所示:

    $sql = "UPDATE tracks SET title='$title'";
    if(!empty($available)){
        $sql .= ", available='$available'";
    }
    $sql .= " WHERE id='$pid'";
    


旁注:了解,因为现在您的查询很容易受到SQL注入攻击。下面是一篇很好的文章。

请详细说明:您的需求一点也不清楚。您的PHP代码是在HTML部分之前,还是在相反的位置使用了它所产生的内容?总之,有一些奇怪的地方,比如
$\u POST[“{$pid}]
。另一方面,你的意思是
name=“[]”
当前没有提供预期的HTML属性吗?
$\u POST[“title”]
的值是什么?仔细想想,当你打印($\u POST)时,你得到了什么
?感谢您的时间。我想从变量名中检索单选按钮的值。我能够获得除单选按钮值之外的所有其他输入的值,因为这是我在其名称上添加php变量的唯一输入。感谢您的帮助,下面是错误:未定义的偏移量:E中的28:\\----第120行的index.php请详细说明:您的需求一点也不清楚。您的php代码是在HTML部分之前,还是在使用HTML部分的相反位置?总之,有一些奇怪的地方,比如
$\u POST[“{$pid}”]
。另一方面,您的意思是
name=“[]”
当前未提供预期的HTML属性?发布“$”的值是多少??再想一想,当您打印($”发布)时会得到什么?感谢您的时间。我想从变量名中检索单选按钮的值。我能够获得除单选按钮值之外的所有其他输入的值,因为这是我在其名称上添加php变量的唯一输入。感谢您的帮助,下面是错误:未定义的偏移量:E中的28:\\----第120行的index.php