2016-12-19 9 views
1

私は同じページにhtml書式とPHPに問題があります。これは私が今までに書いたコードの一部です:

ここには送信ボタンをクリックしてIDを配列に挿入するフォームがあります。フォームを送信すると、の値mengeは常に空です。誰かがこの問題が発生する理由を知っていますか?

echo '<form name="aanzahl" method="POST" action="index.php?page=einzelansicht&id='.$a_id.'">'; 
echo '<input id="inputButton" type="text" name="menge" value="1" size="2" maxlength="2" disabled>'; 
echo '<input type="submit" class ="warenkorbbtn" name="warenkorbbtn" value="In den Warenkorb">'; 
echo '</form>'; 

if(isset($_POST['warenkorbbtn'])){ 
    if (!isset($_SESSION['warenkorb'])){ 
     $_SESSION['warenkorb'] = array(); 
    } 

    $_SESSION['warenkorb'][] = array('warenkorb_id'=>$a_id, 'menge'=>$_POST['menge']); 
    echo "Artikel befindet sich nun im Warenkorb"; 
} 
+1

一つの問題は、あなたが入力し「menge」の「無効」持っているということでしょう... – junkfoodjunkie

+0

でも前に私はあなたがページ –

答えて

0

フォーム要素は、その値はフォームで送信されていません。

このブール属性は、フォームコントロールは、相互作用のために利用できないことを示しています。特に、無効なコントロールにclickイベントは送出されません。また、無効なコントロールの値はフォームと共に送信されません。何がブラウザのコンソールでその属性を削除/変更することからユーザーを防ぐことはできないものの、まだ、まだ属性readonlyを(使用し、値を変更することからユーザーを防ぐフォームで送信された値を持つためには

1 )。

<input id="inputButton" type="text" name="menge" value="1" size="2" maxlength="2" readonly /> 

そして、あなたも入力を見たユーザは気にしないならば、あなたが作ることができる入力タイプ隠さ(すなわち(input type="hidden" />)、ユーザーはまだ彼らのブラウザコンソールを使用して値を変更することができますけれども。

あなたは読み取り専用プロパティは読み取り専用属性がその入力に設定されているthis phpfiddle、で実証見ることができます。

をも注意してください入力要素には許可されたコンテンツがなく、したがって[空要素]です。したがって、要素の最後にスラッシュを追加して、要素を適切に閉じます(つまり、 <input..../>)。

HTMLでは、空の要素に終了タグを使用することは通常無効です。たとえば、無効なHTMLです。 2

+0

タンクあなたの一番上にあるのsession_start()を持っているホップコードをチェック!今それは動作します。しかし、私はフィールドが変更できないようにしたい。まだそれを行う方法はありますか? – luki512

+0

[_readonly_](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)属性についての私の答えのセクションを参照してください。 –

+0

ありがとうございました:) – luki512

2

あなたが入力要素にdisabled属性を設定する場合は、「送信」アクションを発射する場合、その要素の値は送信されません。 disabled属性を削除して、フィールド値を取得してみます。属性無効