0

ページをリロードせずに複数回送信したいフォーム (#searchform) があるので、jQuery と post メソッドを使用します。target (配列、リストなど) という名前の変数にチェックされているチェックボックスと、変数diffで選択されているラジオボタンを保存したいと思います。

変数は、PHP でも使用できる必要があります。さまざまな方法でそれらをftarおよびfdiffとして渡そうとしましたが、何も機能しませんでした。

どんな助けでも大歓迎です!

submit.js の JQuery:

$(document).ready(function () {
    var target = new Array();
    $('#searchform input:checked').each(function() {
        target.push($(this).attr('value'));
    });

    var diff = $('#searchform').find("input[class='diff']").val();

    $.post('index.php', {ftar: target, fdiff: diff});
});

index.php の HTML と PHP:

<!DOCTYPE html>
<html lang="en-US">
<head>
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script src="js/submit.js"></script>
</head>

<body>

<?php 

    ini_set('display_errors',1); 
    error_reporting(E_ALL);
    $link = new mysqli("localhost", "root", "password", "mytable");

    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

    $target = $_POST['ftar'];
    $diff = $_POST['fdiff'];
?>

<div id="right">
    <div class="content">
        <form id="searchform" method="POST" action="/">
            <input type="checkbox" value="Check1">
            <input type="checkbox" value="Check2">
            <input type="checkbox" value="Check3">

            <input type="radio" class="diff" value="Radio1">
            <input type="radio" class="diff" value="Radio2">
        </form>
    </div>
</div>

</body>
</html>
4

3 に答える 3

1

$(#searchform).serialize(); を使用しようとしましたか?

$.post('index.php', $(#searchform).serialize());

また、フォームのフィールドに名前を追加する必要があります

<form id="searchform" method="POST" action="/">
        <input name="check[]" type="checkbox" value="Check1">
        <input name="check[]" type="checkbox" value="Check2">
        <input name="check[]" type="checkbox" value="Check3">

        <input name="radio[]" type="radio" class="diff" value="Radio1">
        <input name="radio[]" type="radio" class="diff" value="Radio2">
    </form>

フィールドを配列としてフェッチします (マークされたフィールドのみが渡されます)

    $target = $_POST['check'];
print_r($target)
$target = $_POST['radio'];
print_r($target)`
于 2013-06-14T17:03:56.407 に答える