-1

最後のストレッチが難しくなっているようです!

したがって、ifステートメントがあり、それらのステートメント内で、それらがtrueの場合にコードを実行する必要があります。問題は、コードが実行されていないにもかかわらず実行されていることです。

Spproved が 1 に設定されていても実行されるコード

if($user_data['permissions'] >= 1)
{
    // If users permission is 1 or 2 they get a field for inputting the index # and a button to change the approve field from 0 to 1 may need to make a new field to record who approved it....

    //Determine if the order is already approved.  If not approved show index field and allow user to approve it with index number
    if($data2[0]['Approved'] == 1)
    {
        echo " <font color=\"green\"> Approved";
    }
    else if($data2[0]['Approved'] == 0)
    {
        echo " Not Approved.  Supply an index number and click approve to authorize this order to be completed.";

        if (empty ($_GET) === false) 
        {
            $required_fields = array('IndexNum');
            foreach ($_GET as $key=>$value)
            {
                if (empty($value) && in_array($key, $required_fields) === true)
                {
                $errors[] = 'Fields marked with an asterisk are required';
                break 1;
                }
            }

            if (isset($_GET['success']) === true && empty($_GET['success']) === true)
            {            
                echo 'Index has been updated and Order is now set to Approved';
            }
            else
            {    
                if (empty($errors) === true)
                {   
                    $indexnum=$_GET['IndexNum'];
                    $approvedby=$user_data['lname'];
                    $vendorid1= $_GET['hidden1'];

                    update_approved($approvedby, $indexnum, $vendorid1);
                    header('Location: index.php');
                    exit();        
                }
                else if(empty($errors) === false)
                {
                    echo output_errors($errors);
                }
            }
        }

        ?>            
         <form name="approveform" method="GET" action="">
        <input type="hidden" name="hidden1" value="<?php echo $id;?>">"
        Index Number*: <input type="text" name="IndexNum">&nbsp;
        <input type="submit" value="Approve" action="">
        </form>

<?php }     
}

if($user_data['permissions'] == 2)
{
    // If user is permission 2 they can have a button to say shipped... Do I need to record who shipped it?  for now nah.  Would be nice to input a data of arrival though.  I will think on it .... pretty lazy
    if($data2[0]['Approved'] == 1)
    {
    echo "<br/>";
    echo "Confirm order has been ordered";

    if(isset($_GET['Ordered']))
    {
        $vendorid1=$_GET['hidden1'];

        echo $vendorid1;
        //update_shipped($vendorid1);
        //header('Location: index.php');
        //exit();
    }    
    ?>

    <form name="approveform" method="GET" action="">
    <input type="hidden" name="hidden1" value="<?php echo $id;?>">
    <input type="submit" name="Ordered" value="Ordered" action="">
    </form>

    <?php            
    }    
}    

IT は承認済みをフォームに緑色で表示し、[注文済み] ボタンが正常に表示されます。送信ボタンをクリックすると、設定されているコードの代わりに else if($data[0]['Approved'] == 0) のコードがアクティブになります。Approved が 1 に設定されているため、そのコードが実行されている理由がわかりません.....

の値print_r($data2)

Array ( [0] => Array ( [VendorName] => Newegg [DateRequested] => 2013-09-25
[DateNeeded] => 0000-00-00 [Shipping] => Standard [VendorNumber] => 123123 
[VendorFax] => NA [VendorAddress] => 1 ave new [VendorCity] => socorro 
[VendorState] => nm [VendorZip] => 87114 [EquipmentConsumable] => Consumable 
[GasType] => propane [GasLocation] => United States [UNMTag] => 0 
[EquipmentLocation] => [index] => 414141 [totalcost] => 129.88 
[Approved] => 1 [Shipped] => 0 ) ) 
4

2 に答える 2

1

これで問題が解決しないことはわかっていますが....

                                                         You have an extra "
                                                             right here
                                                                  |
                                                                  V
    <input type="hidden" name="hidden1" value="<?php echo $id;?>">"
    Index Number*: <input type="text" name="IndexNum">&nbsp;
    <input type="submit" value="Approve" action="">
于 2013-09-26T21:02:58.847 に答える
1

===!==の代わりに==とを厳密に比較してください!=。PHP は、明示的に指示されない限り、1 と 0 をブール値として評価する傾向があります。

また、 のような関数を使用すると、次のようempty()に変更できます。

if( empty($_GET) === FALSE ) if( !empty( $_GET ) )
if( empty($_GET) === TRUE ) _ if( empty( $_GET ) )

彼らがブール値を返すとき。

$_GET を使用しているため、パスごとに必要なすべての変数が URL に含まれていることを確認してください。フォーム要素はネストされた入力要素のみを渡すことができるため、送信後にさらに非表示の情報を渡す必要がある場合があります。action=""また、ファイル名をform タグに入れるか、省略したほうがよいでしょう。

于 2013-09-26T19:44:07.723 に答える