AJAXフォームは情報を送信しますが、PHPは実行されません

ダグラス・ペッテソン

私は数日前にこの正確なフォームに問題があり、皆さんのおかげで別のPHPで修正されました。フォームの1つを変更しましたが、機能しなくなりました。AJAXを介して送信されるすべての変数に警告しましたが、それらは必要な正しい値です。HTMLフォームのコードは次のとおりです。

 <?php
        include('php/connect.php');

        $chquery = "SELECT * FROM rooms";
        $chresult = mysqli_query($conn, $chquery);

        while($chrow = mysqli_fetch_array($chresult)){
            echo "<div class='edit_roomRow'>";
            echo "<h1> Rum " . $chrow['Roomnumber'] . "</h1>";
            echo "<form>";
            echo "Rumsnummer:<br> <input id='c-roomnumber' type='text' value = '" . $chrow['Roomnumber'] . "'><br>";
            echo "Beskrivning:<br> <input id='c-description' type='text' value = '" . $chrow['Description'] . "'>";
            echo "</form>";
            echo "<br>";
            *update* echo "<div class='btn btn-warning change-btn' data-value='". $chrow['ID'] . "' style='float: right; margin-top: 100px;'>Ändra</div>";
            echo "</div>";
            echo "<hr/>";
        }

        mysqli_free_result($chresult);

        mysqli_close($conn);

 ?>

AJAXはここにあります:

<script type="text/javascript">
    $(".change-btn").click(function(){
        var id = $(this).attr("data-value");
        var description = $("#c-description").val();
        var roomnumber = $("#c-roomnumber").val();
        //Call to ajax
        $.ajax({
            method:"GET",
            url: "php/changepost.php",
            data:{ id: id, description: description, roomnumber: roomnumber },
            success: function(){
                $("#c-description").val("");
                $("#c-roomnumber").val("");
                //Reload specific div with rooms, avoid full page reload
                $(".changerooms").load(location.href + " .changerooms");
            }
        })
    })
</script>

PHPなどで変数を変更してみました。

<?php
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    include('connect.php');

    if(isset($_GET['id'])){
        $stmt = mysqli_prepare($conn, "UPDATE rooms SET Roomnumber = ?, Description = ?, WHERE ID = ?");
        mysqli_stmt_bind_param($stmt, "isi", $_GET['roomnumber'], $_GET['description'], $_GET['id']);
        mysqli_stmt_execute($stmt);
    }

    mysqli_close($conn);

?>

DBは次のように設定されます。

ID | Description | Roomnumber| Cleaned | Cleaner | Time

最後の3つはここでは関係ありませんが、完全なデータベース設定を示しています。同じ値で新しい投稿などを追加できますが、何かを変更することになると、このコードでは正しくありません。誰かがこれで私を助けることができることを願っています:)

バーマー

各DIVで同じIDを再利用しているので、代わりにクラスを使用する必要があります。次に、DOMトラバーサル関数を使用して、ユーザーがクリックしたボタンと同じDIV内の入力の値を取得します。

これには</div>.edit_roomRowDIVのをDIVの後に移動する必要があるため.change-btn、フォームと同じDIVになります。

PHP:

<?php
include('php/connect.php');

$chquery = "SELECT * FROM rooms";
$chresult = mysqli_query($conn, $chquery);

while($chrow = mysqli_fetch_array($chresult)){
    echo "<div class='edit_roomRow'>";
    echo "<h1> Rum " . $chrow['Roomnumber'] . "</h1>";
    echo "<form>";
    echo "Rumsnummer:<br> <input class='c-roomnumber' type='text' value = '" . $chrow['Roomnumber'] . "'><br>";
    echo "Beskrivning:<br> <input class='c-description' type='text' value = '" . $chrow['Description'] . "'>";
    echo "</form>";
    echo "<br>";
    echo "<div class='btn btn-warning change-btn' data-value='". $chrow['ID'] . "' style='float: right; margin-top: 100px;'>Ändra</div>";
    echo "</div>";
    echo "<hr/>";
}

mysqli_free_result($chresult);

mysqli_close($conn);

?>

JS:

$(".change-btn").click(function(){
    var div = $(this).closest(".edit_roomRow");
    var id = $(this).attr("data-value");
    var description = div.find(".c-description").val();
    var roomnumber = div.find(".c-roomnumber").val();
    //Call to ajax
    $.ajax({
        method:"GET",
        url: "php/changepost.php",
        data:{ id: id, description: description, roomnumber: roomnumber },
        success: function(){
            div.find(".c-description").val("");
            div.find(".c-roomnumber").val("");
            //Reload specific div with rooms, avoid full page reload
            $(".changerooms").load(location.href + " .changerooms");
        }
    })
})

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PHPフォームは情報を2回送信します

分類Dev

フォーム送信が表示または実行されていません

分類Dev

remote => trueを使用したRailsフォーム送信-jsファイルはレンダリングされますが実行されません

分類Dev

PHPフォームは、モバイルデバイスからのみ情報を送信しません

分類Dev

AJAX検証、ajaxは実行されませんが、getをindex.phpに送信します

分類Dev

フォームonsubmitは関数を実行しますが、変更は保持されません

分類Dev

通常のフォームは正しく送信されますが、ajaxフォームはnullを送信します

分類Dev

HTMLフォームが送信されたときに$ .ajaxを実行します

分類Dev

Parse.comフォームが情報を送信していません、エラーを送信しますか?

分類Dev

POSTを使用してフォームを送信し、CHECKEDチェックボックスに関する情報が投稿/送信されていません

分類Dev

ポリマーコア(ajax)を使用してフォーム結果を送信する際に問題が発生しました-実行されませんか?

分類Dev

メールフォームを送信しますが、メールは送信されません

分類Dev

チェックボックスを変更しても、AJAXを介したフォーム送信は実行されません

分類Dev

jqueryクリックイベントはtrueを返しますが、フォームは送信されません

分類Dev

mailxは正常に実行されますが、メールを送信しません

分類Dev

フォームはajax経由で送信されません

分類Dev

フォームはphpエコーで送信されません

分類Dev

PHP登録フォームは送信されません

分類Dev

PHP-setcookie(); 動作していません(ヘッダー情報を変更できません-ヘッダーは既に送信されています)

分類Dev

Ajaxフォームは結果を送信しません

分類Dev

AJAXはフォームを送信しません

分類Dev

トリガーは実行されません(詳細情報を追加)

分類Dev

フォーラムからの情報がデータベースに送信されていません

分類Dev

ajaxがロードされたフォームの送信を防ぐことはできません

分類Dev

Recaptchav2を使用したPHPフォーム-フォームは送信せずに更新されます

分類Dev

フォームでPHPとAJAXを使用して日付を送信し、情報を取得します

分類Dev

お問い合わせフォームは送信されません。ファイルが見つかりませんエラーを表示します

分類Dev

ApacheはPHPファイルを実行しませんが、ダウンロードさせてくれます

分類Dev

ApacheはPHPファイルを実行しませんが、ダウンロードさせてくれます

Related 関連記事

  1. 1

    PHPフォームは情報を2回送信します

  2. 2

    フォーム送信が表示または実行されていません

  3. 3

    remote => trueを使用したRailsフォーム送信-jsファイルはレンダリングされますが実行されません

  4. 4

    PHPフォームは、モバイルデバイスからのみ情報を送信しません

  5. 5

    AJAX検証、ajaxは実行されませんが、getをindex.phpに送信します

  6. 6

    フォームonsubmitは関数を実行しますが、変更は保持されません

  7. 7

    通常のフォームは正しく送信されますが、ajaxフォームはnullを送信します

  8. 8

    HTMLフォームが送信されたときに$ .ajaxを実行します

  9. 9

    Parse.comフォームが情報を送信していません、エラーを送信しますか?

  10. 10

    POSTを使用してフォームを送信し、CHECKEDチェックボックスに関する情報が投稿/送信されていません

  11. 11

    ポリマーコア(ajax)を使用してフォーム結果を送信する際に問題が発生しました-実行されませんか?

  12. 12

    メールフォームを送信しますが、メールは送信されません

  13. 13

    チェックボックスを変更しても、AJAXを介したフォーム送信は実行されません

  14. 14

    jqueryクリックイベントはtrueを返しますが、フォームは送信されません

  15. 15

    mailxは正常に実行されますが、メールを送信しません

  16. 16

    フォームはajax経由で送信されません

  17. 17

    フォームはphpエコーで送信されません

  18. 18

    PHP登録フォームは送信されません

  19. 19

    PHP-setcookie(); 動作していません(ヘッダー情報を変更できません-ヘッダーは既に送信されています)

  20. 20

    Ajaxフォームは結果を送信しません

  21. 21

    AJAXはフォームを送信しません

  22. 22

    トリガーは実行されません(詳細情報を追加)

  23. 23

    フォーラムからの情報がデータベースに送信されていません

  24. 24

    ajaxがロードされたフォームの送信を防ぐことはできません

  25. 25

    Recaptchav2を使用したPHPフォーム-フォームは送信せずに更新されます

  26. 26

    フォームでPHPとAJAXを使用して日付を送信し、情報を取得します

  27. 27

    お問い合わせフォームは送信されません。ファイルが見つかりませんエラーを表示します

  28. 28

    ApacheはPHPファイルを実行しませんが、ダウンロードさせてくれます

  29. 29

    ApacheはPHPファイルを実行しませんが、ダウンロードさせてくれます

ホットタグ

アーカイブ