2011-01-07 8 views
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> 

が、動作しませんが、次のように私は、チェックボックスにそれを変更し、私は関連する他のコードを表示する必要があるのですか?

おかげでいくつかのいずれか助けている場合、および

を更新し、それを高く評価:あまり目立たないどうやら OKポスト最初に、私はエラーが 致命的なエラーであるエラー

の問題を追加します。コールを未定義のメソッドst_exchange_convに:: Cに変換():\ XAMPP \ htdocsに\ライン上の試験の\ do.php 21

ライン21は$st->convert($from,$key,$date);

あります10
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(); 
} 

なぜドロップダウンからチェックボックスに変更したいのですか? viaチェックボックスのリストでは、データベースの入り口であることを確認したものを選択できるようになるので、私にとっては簡単ではないように思えます。<ありがとうございます。

+0

「動作しません」と指定してください! PHPコードにエラーはありますか?または、HTML出力が正しい/有効ではありませんか? – Simon

+0

OK、今更新しました。ありがとうございました。Simon – omc11

+0

新しいエラーは、変換メソッドが見つかりません....あなたのクラスで定義されていますか? – CarpeNoctumDC

答えて

0

オープニング<select>タグを削除していません。

ただし、<submit>ボタンを削除しました。

nameを「from」から「from []」に変更しました。

EDIT:あなたの追加した後

あなたがfromのための一つの値を選択することしかできなかったドロップダウンリストを使用しました。これでチェックボックスに変更され、複数のエントリを選択できるようになりました。これにより、do.phpにスクリプト内の配列from[]が受信されます。あなたの関数は、配列や複数の選択を扱うことができません。

do.phpを再設計し、フォームをドロップダウンリストに戻すか、比率ボタンを代わりに使用する必要があります。

+0

私は「[]」から「from」までのバックネームを持っています。しかし、まだエラーですが、私はあなたの助けに感謝、再度ありがとう – omc11

+0

あなたの編集は多くを明確にした。私もその答えを編集しました。 – Simon

+0

私はこのサイモンのためにあなたの時間を感謝しました、私は二度と更新しました、うまくいけば、私は何を探して、感謝を再度完全に読んだ後に任意のアイデアを持っています。 – omc11

関連する問題