1

フォーム外のボタンを使用して送信するフォームがあります。以下は、フォームの外側からボタンを使用してフォームを送信する方法に関するコードです。以下のコードは、ページに何かをエコーする必要があります。しかし、テキストがエコーしない理由がわかりません。

    <?php
    if(isset($_POST['partForm'])){
        echo "Test1";
    }
    if(isset($_POST['submitForm'])){
        echo "Test2";
    }
?>

<html>
<body>

<div>
<h2>Part</h2>
<form method="post" enctype="multipart/form-data" name="partForm" id="partForm" action="submit_form_button_outside.php">
SKU#: <input type="text" name="sku"><br>
Part: <select name="categories">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select><br>

Description: <input type="text" name="part"><br>
Quantity: <input type="text" name="part"><br>
Price: <input type="text" name="part"><br>
Select images: <input type="file" name="img" multiple><input type="submit" value="Upload">
</form>
</div>

<div>
    <button type="submit" form="partForm" value="submitForm">Add Item</button>
    <!--<button type="button" onclick="document.getElementById('partForm').submit();">Add Item</button>-->
    <!--<button type="button" onclick="document.forms['partForm'].submit(); return false">Add Item</button> -->
</div>

</body>
</html> 
4

5 に答える 5

8

次のような jQuery submit 関数を使用できます。

$('#buttonId').click(function() {
    $('#partForm').submit();
});

基本的に、外側のボタンをクリックするとフォームが送信されます。

于 2013-10-17T19:38:26.343 に答える
2

ボタンが form タグの外側にあります。

フォーム タグの外側にボタンが必要な場合は、次の例を検討してください。

<form action="demo_form.php" method="get" id="form1">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
</form>

<button type="submit" form="form1" value="Submit">Submit</button>

ボタンのフォーム属性に注意してください。

次に確認することは、投稿された変数が設定されているかどうかです。

print_r($_POST);
于 2013-10-17T19:43:43.167 に答える
1

POST 配列に含まれる値は、投稿された要素の名前になります。100% 確信はありませんが、フォーム名が $_POST 配列に含まれるとは思いません。

を使用して投稿を確認できます

if (!empty($_POST))
{

}

または、FORM 内の入力名に基づいて $_POST['sku'] などの個々の値を確認できます

于 2013-10-17T19:43:48.263 に答える
1

コードは正常に機能し、フォームは送信されていますが、 $_POST['partForm'] で間違った値をテストしており、値 sku を入力しようとしています。

于 2013-10-17T19:46:26.573 に答える
0

フォームの外側にボタンがある場合、javascript を使用しないと、そのボタンでフォームを送信することはできません。

下に表示されているコードは、ほぼ正しいように見えます: Add Item

うまくいかなかったと思います。フォームが送信されたことを確認しましたか? フォーム名は常に $_POST 配列で渡されるとは限りません。要素の 1 つ、または単に print_r($_POST); をテストすることをお勧めします。送信された情報を表示します。

于 2013-10-17T19:40:18.957 に答える