使用PHP和搜索选项保存特定行

使用PHP和搜索选项保存特定行,php,html,oracle,Php,Html,Oracle,我有下面的程序,它搜索放置在以前的php文件中的文本,并显示结果,通过添加一个radiobox来检查将要购买的项目。我无法使页面将从找到的项目中选中的项目保存到新表中,我不知道如何执行此操作,因为找到的项目被放置为获取的项目,因此我不知道如何选择一个来保存选定的整行。请帮忙 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Search option</tit

我有下面的程序,它搜索放置在以前的php文件中的文本,并显示结果,通过添加一个radiobox来检查将要购买的项目。我无法使页面将从找到的项目中选中的项目保存到新表中,我不知道如何执行此操作,因为找到的项目被放置为获取的项目,因此我不知道如何选择一个来保存选定的整行。请帮忙

<!doctype html>
<html>
<head>

<meta charset="utf-8">
<title>Search option</title>

</head>

<body>
<?php
echo "<form action='slips.php' method='post'>";
if(isset($_POST['name_prod2'])){ 
$word=$_POST['name_prod2']; 

$conn = oci_pconnect('dbname', 'password', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['Error'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM product WHERE LOWER(name) LIKE '%" . $word . "%'");
oci_execute($stid);

echo "<table width='950' table border='1' align='center'>\n";
    echo "<tr>\n";
    echo "<th width='50'> <div align='center'>buy</div></th>";
    echo "<th width='110'> <div align='center'>Product ID</div></th>";
    echo "<th width='190'> <div align='center'>Product name</div></th>";
    echo "<th width='250'> <div align='center'>Description</div></th>";
    echo "<th width='100'> <div align='center'>in Store</div></th>";
    echo "<th width='100'> <div align='center'>price</div></th>";
    echo "<th width='190'> <div align='center'>Quantity to purchase</div></th>";
    echo "</tr>\n";

while ($product = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {

    echo "<tr>\n";  
    //echo "<td><div style='text-align:center'><label><input type='radio' name='radio1' value='valor'></label></td></div>";
    echo sprintf('<td><div style="text-align:center"><label><input type="radio" name="product" value="%s"></label></td></div>', $product['product_id']);

    foreach ($product as $aspect) {
    echo '<td><div style="text-align:center">'.($aspect !== null ? htmlentities($aspect, ENT_QUOTES) : '')."</td></div>\n";
    }
    echo '<td width="50"><div align="center"><input name="quantity" type="text" size="27" maxlength="50" placeholder="Enter quantity"></div></td>';

}
echo "</table>\n";
}
echo "<div style='text-align:center'><input type='submit' value='Comprar'></div>";
echo"</form>";
?>

</body>
</html>

搜索选项

你的收音盒需要留在表单中。

好的,从问题的评论中提取信息,做一些猜测工作,我将尝试为你指出正确的方向。这是不可能给一个阅读使用的答案,因为仍然有事情不清楚,但让我们有一个尝试开始

我看到你有一个html表单,其中包括一个表。该表有一个标题行和动态生成的行,每个行保存一些产品信息。您希望在每行前面有一个单选按钮,以允许选择一行。您希望在每行的末尾有一个文本输入字段,用于输入数量。然后,您希望将该信息发布到服务器,以便能够对其进行处理

我将坚持“保守”的html方法,这里不介绍脚本。原因是,对于前面描述的目的,不需要这样做。让我们保持简单。显然,没有什么能反对以后把事情弄得更复杂:-)

您的单选按钮必须更改,它们目前毫无意义。您必须为该行指定一个单独的值,以便以后可以确定选择了哪一行。当前,您为它们提供相同的静态值“value”。因此,将迭代产品的循环更改为:

while ($product = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";  
    echo sprintf('<td><div style="text-align:center"><label><input type="radio" name="product" value="%s"></label></td></div>'."\n", $product['product_id']);

    foreach ($row as $aspect) {
        echo '<td><div style="text-align:center">' 
            .($aspect !== null ? htmlentities($aspect, ENT_QUOTES) : '')
            ."</td></div>\n";
    }
    echo '<td width="50"><div align="center"><input name="quantity" type="text" size="27" maxlength="50" placeholder="Enter quantity"></div></td>'."\n";
}
还有更多的问题值得讨论和修改,但正如所说:让我们保持简单,一步一步走


更改日志:

  • 根据下面的注释之一,将用作单选按钮定义内值的数组元素的文字键从
    id
    更改为
    product\u id

因为您没有使用表单,所以不会向服务器发布任何内容。因此,你必须在客户端采取行动。您在javascript中实现了一个事件处理程序,该处理程序会在无线框签入该处理程序时做出反应,您可以向可以处理信息的服务器发出ajax调用。在谷歌或其他任何地方都可以找到很多这样的例子。我曾尝试用javascript实现三种不同的事件处理程序,其中一种使用jQuery,但根本不起作用。当页面加载时,它们可以工作,但一旦你点击一个radiobox,它就不会显示它已被选中。对此我们无话可说:“没有工作”从来没有在任何地方帮助过任何人。你必须展示你的尝试,否则一切都是猜测。感谢你对帮助我的兴趣,我已经更新了我的问题,使用我迄今为止尝试过的Java脚本,请检查它。我希望我能完成这个程序。我已经完成了,但是我仍然无法将从搜索结果中选择的行保存到新表中。注释不用于扩展讨论;这段对话已经结束。
while ($product = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";  
    echo sprintf('<td><div style="text-align:center"><label><input type="radio" name="product" value="%s"></label></td></div>'."\n", $product['product_id']);

    foreach ($row as $aspect) {
        echo '<td><div style="text-align:center">' 
            .($aspect !== null ? htmlentities($aspect, ENT_QUOTES) : '')
            ."</td></div>\n";
    }
    echo '<td width="50"><div align="center"><input name="quantity" type="text" size="27" maxlength="50" placeholder="Enter quantity"></div></td>'."\n";
}
$product  = $_POST['product'];
$quantity = $_POST['quantity'];