簡體   English   中英

jQuery序列化具有多個值的函數

[英]jQuery serialize function with multiple values

我嘗試使用jQuery將多個值發布到PHP頁面,然后將該值用作單個值。

我從Jquery站點的代碼開始:

  <form ><br>
  <select name="multiple" multiple="multiple">
   <option selected="selected">Multiple</option>
   <option>Multiple2</option>
   <option selected="selected">Multiple3</option>
  </select>

  <br>

 <br>

 </form>

 <p><tt id="results"></tt></p>

  <script>
     function showValues() {
     var str = $( "form" ).serialize();
     $( "#results" ).text( str );
                            }
    $( "input[type='checkbox'], input[type='radio']" ).on( "click", showValues );
    $( "select" ).on( "change", showValues );
   showValues();
    </script>

結果是: multiple=Multiple&multiple=Multiple2 ,這很好。

現在mycproblem是如何將這些值發布到test.php頁面,然后使用唯一值,如下所示:

$multiple=[first value]
$multiple2=[second value]
etc...

改變你multiplemultiple[]在您的形式。 這會將您的值提交為多個[] =第一個值,多個[] =第二個值等等。

jQuery的,

$('form').on('submit', function(e)
{
  e.preventDefault();
  formData=$('form').serialize();
    $.ajax(
    {
        type: "POST",
        url: "test.php",
        data: formData,
        success: function(data)
        {
            alert("Form submitted");
        },
        error: function()
        {
            alert("Error in form submission");
        }
    });
});

在PHP端,

$multiple=$_POST['multiple']; // Get the array input

現在分別繼續處理這些值,

foreach($multiple as $key => $value)
{
echo "value number $key is $value"; // This will print as value number 0 is 1st value, value number 1 is 2nd value and more.
}

您必須使用AJAX將表單發布到test.php。 嘗試這個 -

$("form").on('submit', function(ev){

    ev.preventDefault();
    var form = $(this);
    var action = 'test.php';
    var data = $(this).serialize();

    $.post(action, data)
    .done(function(response){

        if(response.success == false)
        {
            // If failed
        }
        else
        {
            // If successfully submitted
        }
    });
});

另一方面(test.php),你會得到一個像這樣的多個值的數組,

$multiple1 = $_POST['multiple']['0'];
$multiple2 = $_POST['multiple']['1'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM