将下拉列表从数组更改为复选框

发布于 2024-10-11 03:52:29 字数 4117 浏览 2 评论 0原文

我想从下拉菜单更改为复选框,我想更改它,因为我想首先选择数组中的列表,然后再通过复选框存储到数据库,因此下拉脚本如下

<?php
session_start();
define('DEFAULT_SOURCE','Site_A'); 
define('DEFAULT_VALUE',100);
define('DEFAULT_STC','BGS');
include('class/stockconvert_class.php');
$st = new st_exchange_conv(DEFAULT_SOURCE);
if(isset($_GET['reset'])) {
    unset($_SESSION['selected']);
    header("Location: ".basename($_SERVER['PHP_SELF']));
    exit();
}
?>
<form action="do.php" method="post">
<label for="amount">Amount:</label>
<input type="input" name="amount" id="amount" value="1">
<select name="from">
<?php
$stocks = $st->stocks();
asort($stocks);
foreach($stocks as $key=>$stock)
{
    if((isset($_SESSION['selected']) && strcmp($_SESSION['selected'],$key) == 0) || (!isset($_SESSION['selected']) && strcmp(DEFAULT_STC,$key) == 0))
    {
    ?>
    <option value="<?php echo $key; ?>" selected="selected"><?php echo $stock; ?></option>
    <?php
    }
    else
    {
    ?>
    <option value="<?php echo $key; ?>"><?php echo $stock; ?></option>
    <?php   
    }
}
?>
</select>
<input type="submit" name="submit" value="Convert">
</form>

,我更改了它如下的复选框

<?php
session_start();
define('DEFAULT_SOURCE','Site_A'); 
define('DEFAULT_VALUE',100);
define('DEFAULT_STC','BGS');
include('class/stockconvert_class.php');
$st = new st_exchange_conv(DEFAULT_SOURCE);
if(isset($_GET['reset'])) {
    unset($_SESSION['selected']);
    header("Location: ".basename($_SERVER['PHP_SELF']));
    exit();
}
?>
<form action="do.php" method="post">
<label for="amount">Amount:</label>
<input type="input" name="amount" id="amount" value="1"><input type="submit" name="submit" value="Convert">
<?php
$stocks = $st->stocks();
asort($stocks);
foreach($stocks as $key=>$stock)
{
    if((isset($_SESSION['selected']) && strcmp($_SESSION['selected'],$key) == 0) || (!isset($_SESSION['selected']) && strcmp(DEFAULT_STC,$key) == 0))
    {
    ?>
    <br><input type="checkbox" id="scb1" name="from[]" value="<?php echo $key; ?>" checked="checked"><?php echo $stock; ?>
    <?php
    }
    else
    {
    ?>
    <br><input type="checkbox" id="scb1" name="from[]" value="<?php echo $key; ?>"><?php echo $stock; ?>
    <?php
    }
}
?>
</form>

但不起作用,我是否需要显示其他相关代码?

感谢有人提供帮助,并感谢它

更新: 好的,发布第一个显然不太明显,所以我将添加错误的问题,

错误是 致命错误:在第 21 行调用 C:\xampp\htdocs\test\do.php 中未定义的方法 st_exchange_conv::convert()

第 21 行是 $st->convert($from,$key,$date );

session_start();
if(isset($_POST['submit']))
{
    include('class/stockconvert_class.php');
    $st = new st_exchange_conv(DEFAULT_SOURCE);
    $from = mysql_real_escape_string(stripslashes($_POST['from']));
    $value = floatval($_POST['amount']);
    $date = date('Y-m-d H:i:s');
    $_SESSION['selected'] = $from;
    $stocks = $st->stocks();
    asort($stocks);

    foreach($stocks as $key=>$stock)
    {
        $st->convert($from,$key,$date);
        $stc_price = $st->price($value);
        $stock = mysql_real_escape_string(stripslashes($stock));
        $count = "SELECT * FROM oc_stock WHERE stock = '$key'";
        $result = mysql_query($count) or die(mysql_error());
        $sql = '';
        if(mysql_num_rows($result) == 1)
        {
            $sql = "UPDATE oc_stock SET stock_title = '$stock', stc_val = '$stc_price', date_updated = '$date' WHERE stock = '$key'";
        }
        else
        {       
        $sql = "INSERT INTO oc_stock(stock_id,stock_title,stock,decimal_place,stc_val,date_updated) VALUES ('','$stock','$key','2',$stc_price,'$date')";
        }   
        $result = mysql_query($sql) or die(mysql_error().'<br />'.$sql);
    }
    header("Location: index.php");
    exit();
}

为什么我要把它从下拉菜单改为复选框? 因为通过复选框列表我将能够选择我检查的那些是数据库的入口,那么这对我来说似乎并不简单,我正在寻找一些帮助<非常感谢你,伙计。

I would like a change from the drop down to the checkbox, I want to change it because I want firstly select the list in the array can be selected before store to database via the checkbox, so the dropdown script was as follows

<?php
session_start();
define('DEFAULT_SOURCE','Site_A'); 
define('DEFAULT_VALUE',100);
define('DEFAULT_STC','BGS');
include('class/stockconvert_class.php');
$st = new st_exchange_conv(DEFAULT_SOURCE);
if(isset($_GET['reset'])) {
    unset($_SESSION['selected']);
    header("Location: ".basename($_SERVER['PHP_SELF']));
    exit();
}
?>
<form action="do.php" method="post">
<label for="amount">Amount:</label>
<input type="input" name="amount" id="amount" value="1">
<select name="from">
<?php
$stocks = $st->stocks();
asort($stocks);
foreach($stocks as $key=>$stock)
{
    if((isset($_SESSION['selected']) && strcmp($_SESSION['selected'],$key) == 0) || (!isset($_SESSION['selected']) && strcmp(DEFAULT_STC,$key) == 0))
    {
    ?>
    <option value="<?php echo $key; ?>" selected="selected"><?php echo $stock; ?></option>
    <?php
    }
    else
    {
    ?>
    <option value="<?php echo $key; ?>"><?php echo $stock; ?></option>
    <?php   
    }
}
?>
</select>
<input type="submit" name="submit" value="Convert">
</form>

and i Changed it to the checkbox as follows

<?php
session_start();
define('DEFAULT_SOURCE','Site_A'); 
define('DEFAULT_VALUE',100);
define('DEFAULT_STC','BGS');
include('class/stockconvert_class.php');
$st = new st_exchange_conv(DEFAULT_SOURCE);
if(isset($_GET['reset'])) {
    unset($_SESSION['selected']);
    header("Location: ".basename($_SERVER['PHP_SELF']));
    exit();
}
?>
<form action="do.php" method="post">
<label for="amount">Amount:</label>
<input type="input" name="amount" id="amount" value="1"><input type="submit" name="submit" value="Convert">
<?php
$stocks = $st->stocks();
asort($stocks);
foreach($stocks as $key=>$stock)
{
    if((isset($_SESSION['selected']) && strcmp($_SESSION['selected'],$key) == 0) || (!isset($_SESSION['selected']) && strcmp(DEFAULT_STC,$key) == 0))
    {
    ?>
    <br><input type="checkbox" id="scb1" name="from[]" value="<?php echo $key; ?>" checked="checked"><?php echo $stock; ?>
    <?php
    }
    else
    {
    ?>
    <br><input type="checkbox" id="scb1" name="from[]" value="<?php echo $key; ?>"><?php echo $stock; ?>
    <?php
    }
}
?>
</form>

but does not work, am I need to display Other codes related?

Thanks if some one help, and appreciated it

UPDATED:
ok post the first apparently less obvious, so I will add the problem of error

the error is
Fatal error: Call to undefined method st_exchange_conv::convert() in C:\xampp\htdocs\test\do.php on line 21

line 21 is $st->convert($from,$key,$date);

session_start();
if(isset($_POST['submit']))
{
    include('class/stockconvert_class.php');
    $st = new st_exchange_conv(DEFAULT_SOURCE);
    $from = mysql_real_escape_string(stripslashes($_POST['from']));
    $value = floatval($_POST['amount']);
    $date = date('Y-m-d H:i:s');
    $_SESSION['selected'] = $from;
    $stocks = $st->stocks();
    asort($stocks);

    foreach($stocks as $key=>$stock)
    {
        $st->convert($from,$key,$date);
        $stc_price = $st->price($value);
        $stock = mysql_real_escape_string(stripslashes($stock));
        $count = "SELECT * FROM oc_stock WHERE stock = '$key'";
        $result = mysql_query($count) or die(mysql_error());
        $sql = '';
        if(mysql_num_rows($result) == 1)
        {
            $sql = "UPDATE oc_stock SET stock_title = '$stock', stc_val = '$stc_price', date_updated = '$date' WHERE stock = '$key'";
        }
        else
        {       
        $sql = "INSERT INTO oc_stock(stock_id,stock_title,stock,decimal_place,stc_val,date_updated) VALUES ('','$stock','$key','2',$stc_price,'$date')";
        }   
        $result = mysql_query($sql) or die(mysql_error().'<br />'.$sql);
    }
    header("Location: index.php");
    exit();
}

Why I want to change it from dropdown to checkbox?
because with via checkbox list I will be able to choose which ones I checked it was the entrance to the database, then it seem not simple to me, I looking for some help< thanks So much For You mate.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

行雁书 2024-10-18 03:52:29

您尚未删除开始

但您删除了 按钮。

您将名称从“from”更改为“from[]”。

编辑:添加后:

使用下拉列表,您只能为 from 选择一个值。现在您将其更改为复选框,因此可以选择多个条目。这会导致在 do.php 的脚本中接收一个数组 from[]。您的函数无法以任何方式处理数组或多项选择。

您必须重新设计do.php,将表单更改回下拉列表或使用比例按钮。

You have not removed the opening <select> tag.

But you removed the <submit> button.

You changed the name from "from" to "from[]".

EDIT: After your additions:

Using the dropdown list you were only able to select one value for from. Now you changed it to checkboxes and thus are able to select multiple entries. This results in receiving an array from[] in your script in do.php. Your functions there are not able to handle arrays or multiple selections in any way.

You have to re-design do.php, change your form back to a dropdown list or use ratio buttons instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文