изменить раскрывающийся список из массива в флажок - PullRequest
0 голосов
/ 07 января 2011

Я хотел бы перейти от выпадающего списка к флажку, я хочу изменить его, потому что я хочу сначала выбрать список в массиве, который можно выбрать перед сохранением в базе данных с помощью флажка, поэтому сценарий выпадающего меню был следующим

<?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>

, но не работает, мне нужно отобразить другие коды, связанные?

Спасибо, если кто-нибудьпомогите, и оценили это

ОБНОВЛЕНО: хорошо, опубликуйте первый явно менее очевидный, поэтому я добавлю проблему ошибки

ошибка - Неустранимая ошибка: вызов неопределенногоМетод st_exchange_conv :: convert () в C: \ xampp \ htdocs \ test \ do.php в строке 21

строка 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();
}

Почему я хочу изменить егоот выпадающего к флажку?потому что с помощью списка чекбоксов я смогу выбрать, какие из них я проверял, это был вход в базу данных, тогда мне кажется, что это не так просто, я ищу некоторую помощь <Большое спасибо Тебе, приятель. </p>

1 Ответ

0 голосов
/ 07 января 2011

Вы не удалили открывающий тег <select>.

Но вы удалили кнопку <submit>.

Вы изменили name с "с" на "с []".

РЕДАКТИРОВАТЬ: После ваших дополнений:

Используя раскрывающийся список, вы смогли выбрать только одно значение для from. Теперь вы изменили его на флажки и, таким образом, можете выбрать несколько записей. Это приводит к получению массива from[] в вашем скрипте в do.php. Ваши функции не могут обрабатывать массивы или множественные выборки каким-либо образом.

Вы должны изменить дизайн do.php, изменить форму обратно на раскрывающийся список или использовать вместо этого кнопки коэффициентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...