Javascript 将while循环中的变量从第二个表以

Javascript 将while循环中的变量从第二个表以,javascript,php,jquery,sql,Javascript,Php,Jquery,Sql,我试图从两列(封面和页码)中获取两个变量。正如您所看到的,select用于name列,因此我无法获取其他变量并将它们插入cover和pageno列。我在输入中有值,但有一个问题 如果有多本书,它将回显输入值中所有书的所有封面和所有页码 填充db时,它的操作与值相同,它使用所有书籍的all-covers和pageno(而不是所选的特定书籍)填充列 我不知道如何循环输入,只打印所选书籍,并用所选内容填充数据库。也许是Jquery的javascript?我希望这是有道理的 <select nam

我试图从两列(封面和页码)中获取两个变量。正如您所看到的,select用于name列,因此我无法获取其他变量并将它们插入cover和pageno列。我在输入中有值,但有一个问题

  • 如果有多本书,它将回显输入值中所有书的所有封面和所有页码
  • 填充db时,它的操作与值相同,它使用所有书籍的all-covers和pageno(而不是所选的特定书籍)填充列 我不知道如何循环输入,只打印所选书籍,并用所选内容填充数据库。也许是Jquery的javascript?我希望这是有道理的

    <select name="name">
    <option value="<?php echo "{$_POST['name']}"; ?>"> </option>                      
    
    <?php
    include('theconnection.php');
    $con = mysqli_connect($host,$user,$pass,$dbName);
    if (!$con)
    {
    die('cannot connect: ' . mysqli_error($con));
    }
    mysqli_select_db($con,"thebooks");
    
    $result = mysqli_query($con,"SELECT b.id, b.name, b.cover, b.pageno FROM books");
    
    $cover = '';
    $pageno = '';
    
    while($row = mysqli_fetch_array($result))
    {
    echo ("<option value='$row[name]'>$row[name] $row[cover], $row[pageno] </option>"); 
    
    $cover .= "$row[cover]";
    $pageno .= "$row[pageno]";
    
    }
    
    ?>
    
    </select>
    
    <input type="hidden" name="cover" value="<?php echo $cover; ?>">
    <input type="hidden" name="pageno" value="<?php echo $pageno; ?>">
    
    
    
    我不清楚你的问题。从中我可以看出,隐藏字段cover和page no应该只显示选中的行。查看您的代码,我不明白为什么要使用select查询两次无论如何,您不使用第一个查询,可以安全地删除,还可以添加where子句来过滤结果,即使有多个结果,您也可以在while循环中进行某种比较,但我建议您在查询本身中进行比较。如果在隐藏的封面和页码中只显示一个值是你的动机,那么你可以使用

    $cover = "$row[cover]";
    $pageno = "$row[pageno]";
    

    如果你能解释得更清楚些,我很乐意帮助你

    嗨,巴尔金德,谢谢你的评论。是的,你是对的,第一个查询不需要在那里。我在测试不同的东西,但忘了移除它。我正在使用第二个查询。我想做的是,即使我使用代码,你发布了两本书的价值-正如你所看到的,我在选择中有两本书-第123页是一本书,第345页是另一本书,封面价值是纸质-纸质是一本书,纸质是第二本书。我只想要所选书籍的结果-一本书。下面是说我选择了两本书,这不是真的。我选择一个。。。换句话说,它在隐藏字段值中合并了两本书。所选帐面价值的来源是哪里,是您在所选帐面中的$_POST['name']吗。如果是这种情况,您需要将该值添加到查询中,如
    $result=mysqli\u query($con),“从书中选择b.id、b.name、b.cover、b.pageno,其中b.name='”+$\u POST['name']+“”
    至于被组合的值,去掉前面的点(.)=看我上面的答案,加一个点(.)实际上是连接这些值的。谢谢你的回复。我添加了你的代码,删除了一些点,它们将pageno和cover的值结合起来,这很好。但现在的问题是,在刷新后查看隐藏值,当我没有选择一本书时,它会用最后一本书填充隐藏值。对于一个测试,我添加了名称id,当选择一本书并提交时,它使用所选的id<(因此验证会阻止它提交和填充数据库),这非常好。但是,当我填写表单并选择第一本书时,它会用我选择第一本书时的最后一本书的值填充db列。请您发布完整的代码以及html表单和php插入脚本。我仍然不能完全理解这个问题。cover和pageno变量将从sql返回的最后一行填充。因此,如果查询返回5行,则第5行将是cover和page no的值