Datenschutzerklärung

Auswahlliste durch Eingabefeld ersetzen?

Validome - Forum

Startseite Validome
RSS 2.0  
Sie sind nicht angemeldet. Atom 1.0  
Forum Home / Sonstige Technologien /

Auswahlliste durch Eingabefeld ersetzen?

  Beitrag schreiben
Autor
Beitrag Seiten: 1
Dungeonwatcher
Mitglied

Ort: Berlin
Registriert: 08.11.2005
Beiträge: 126
Hi große Meister der PHP Künste! 8-)

Ich bin gerade am verzweifeln, weil das was ich vorhabe nicht funktioniert. :(

Daher meine Bitte um Hilfe an die hiesigen Profis.

Ich möchte eine Auswahlliste für einen Aktienkauf/-verkauf durch einfache Eingabefelder ersetzen. In diesem soll der User direkt eintragen können wie viele Aktien er kaufen oder verkaufen will. Dazu müsste folgender Code ersetzt werden:

Code:

$a = $exchange[$i]['stock_id'];
$buy_item[$a] = "";
$buy_item[$a] = '<select name="buy_item'.$a.'" >';
for( $k = 0; $k < $num_items; $k++ )
{
    $buy_item[$a] .= '<option value="' . $k . '" >' . $k . '</option>';
}
$buy_item[$a] .= '</select>';

bzw.

Code:

$sell_item[$a] = "";
$sell_item[$a] = '<select name="sell_item'.$a.'" >';
for( $l = 0; $l < $num_items; $l++ )
{
    $sell_item[$a] .= '<option value="' . $l . '" >' . $l . '</option>';
}
$sell_item[$a] .= '</select>';

Das ganze habe ich ersetzt durch dies:

Code:

buy_item[$a] = "";
for( $k = 0; $k < buy_item; $k++ )
{
    buy_item[$a] = '<input class="post" type="text" maxlength="8" size="8" name="buy_item" style="text-align: right;" />';
}

bzw.

Code:

$sell_item[$a] = "";
for( $l = 0; $l < $num_items; $l++ )
{
    $sell_item[$a] = '<input class="post" type="text" maxlength="8" size="8" name="$sell_item" style="text-align: right;" />';
}

Damit ist jetzt zwar das Eingabefeld da, nur wird die Eingabe in diesem ignoriert? Was ist da falsch?

Das gleiche Ergebnis erhalte ich auch hiermit:

Code:

$a = $exchange[$i]['stock_id'];
$sell_item[$a] = $buy_item[$a] = '';
$buy_item[$a] = '<input class="post" type="text" maxlength="8" size="8" name="buy_item" style="text-align: right;" />';
$sell_item[$a] = '<input class="post" type="text" maxlength="8" size="8" name="sell_item" style="text-align: right;" />';

Im zuständigen Template wird mit dieser Funktion das ganze übernommen:

Code:

<td class="catBottom" colspan="9" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="exchange_submit" value="{L_SUBMIT}" class="mainoption" /></td>

Im PHP Code ist das diese Funktion:

Code:

if ( $exchange_submit )
{
    $sql = "SELECT *
        FROM " . VAULT_EXCHANGE_TABLE ."
        ORDER BY stock_id 
        DESC LIMIT 1";
    $result = $db->sql_query($sql);
    if( !$result )
    {
        message_die(GENERAL_ERROR, 'Could not obtain stock exchange information', "", __LINE__, __FILE__, $sql);
    }
    $stock_data = $db->sql_fetchrow($result);
    $max = $stock_data['stock_id'];

    for ($i=0; $i <= $max; $i++) 
    { 
        $input = 'buy_item' . $i; 
        $$input = doubleval($HTTP_POST_VARS[$input]);
        $input2 = 'sell_item' . $i; 
        $$input2 = doubleval($HTTP_POST_VARS[$input2]);
    }
    $sql = "SELECT stock_price , stock_id FROM " . VAULT_EXCHANGE_TABLE ." 
        ORDER BY stock_id";
    $result = $db->sql_query($sql);
    if( !$result )
    {
        message_die(GENERAL_ERROR, 'Could not obtain items pets information', "", __LINE__, __FILE__, $sql);
    }
    $items = $db->sql_fetchrowset($result);
    for ( $i = 0 ; $i < count($items) ; $i ++ )
    {
        $price = 0;
        $a = $items[$i]['stock_id'] ;
        $buys = 'buy_item'.$items[$i]['stock_id'].'';
        $buy = $$buys;
        $sells = 'sell_item'.$items[$i]['stock_id'].'';
        $sell = $$sells;
        $price = ( ( $buy -  $sell ) * $items[$i]['stock_price'] );

        $ssql = "SELECT stock_amount FROM " . VAULT_EXCHANGE_USERS_TABLE ." 
        WHERE stock_id = ".$items[$i]['stock_id']."
        AND user_id = ".$user_id;
        $sresult = $db->sql_query($ssql);
        if( !$sresult )
        {
            message_die(GENERAL_ERROR, 'Could not obtain shares information', "", __LINE__, __FILE__, $ssql);
        }
        $user_items = $db->sql_fetchrow($sresult);

        if ( (( $sell - $buy ) > $user_items['stock_amount'] && is_numeric($user_items['stock_amount'])) || ( !(is_numeric($user_items['stock_amount'])) && (( $buy - $sell ) < 0) ) )
        {
            vault_previous( Vault_stock_lack , vault , '' , '');
        }
        if ( $price > $userdata['user_points'])
        {
            vault_previous( Vault_points_lack , vault , '' , '');
        }
        else
        {
            $sql = "UPDATE " . USERS_TABLE ."
                SET user_points = user_points - $price
                WHERE user_id = $user_id";
            if( !$db->sql_query($sql))
            {
                message_die(GENERAL_ERROR, 'Could not obtain update user points', "", __LINE__, __FILE__, $sql);
            }
        }
        $userdata['user_points'] = $userdata['user_points'] - $price;

        $prize = $buy -  $sell;
        if ( is_numeric($user_items['stock_amount']) &&    $prize != 0 )
        {
            $rsql = "UPDATE " . VAULT_EXCHANGE_USERS_TABLE ."
                SET stock_amount = stock_amount + $prize
                WHERE user_id = $user_id
                AND stock_id = ".$items[$i]['stock_id'];
            if( !$db->sql_query($rsql))
            {
                message_die(GENERAL_ERROR, 'Could not update user stock', "", __LINE__, __FILE__, $rsql);
            }
        }
        else if ( !(is_numeric($user_items['stock_amount'])) && $prize != 0 )
        {
            $rsql = "INSERT INTO " . VAULT_EXCHANGE_USERS_TABLE ."
                ( stock_id , user_id , stock_amount )
                VALUES ( ".$items[$i]['stock_id']." , $user_id , $prize )";
            if( !$db->sql_query($rsql))
            {
                message_die(GENERAL_ERROR, 'Could not update user stock', "", __LINE__, __FILE__, $rsql);
            }
        }
    }
    $stock_exchange = TRUE;    
}

Der vollständige Code ist http://www.dungeon-bbs.de/BETA/vault.php.txt

Bye

Beitrag geändert von Dungeonwatcher (22.11.2008 12:06:04)


_______________________________________
Dungeon-BBS MyMinicity (http://dungeon-bbs.myminicity.com/)

22.11.2008 12:00:37
http://www.dungeon-bbs.de/forum/ Beitrag schreiben
Seiten: 1   Beitrag schreiben
Wechsel zu

Valid HTML 4.01