簡體   English   中英

如何在AJAX查詢后從表單上顯示的復選框中獲取POST值?

[英]How can I get a POST value from a checkbox that appeared on a form after an AJAX query?

index.php有幾個字段,其中一個是名為item_A的下拉列表。 如果用戶在item_A中選擇某個值,則AJAX將導致一個選中的復選框出現在index.php的表單上。 復選框的名稱是check_A

但是,當從index.php的POST讀取值時,不存在來自復選框的值。 如何獲得此類復選框的價值?

這是index.php的HEAD標簽之間的AJAX代碼:

<script type="text/javascript">
$(document).ready(function() {
    $('#item_A').blur(function(){
       $.post("process_A.php", {
        bookid: $('#bookid').val()
      }, function(response){
        $('#usernameResult').fadeOut();
        setTimeout("finishAjax('usernameResult', '"+escape(response)+"')", 400);
      });
        return false;
    });
});

這是process_A.php的代碼行,其中顯示了index.php上的復選框:

echo "<input type=\"checkbox\" name=\"check_A\" checked> I would like Option A.";

這是FORM標記之間index.php的區域,其中出現了復選框:

<span id="usernameResult" style="color:green;"></span>

我將需要查看DOM代碼,但是從本質上講,如果將元素添加到標記中的DOM中(通過PHP或AJAX),並且在語法上有效,那么它將在提交時顯示在POST標頭中。 您可以在選擇的瀏覽器中使用開發工具手動添加一個復選框,並且該值仍會發布,因為服務器不具備提交請求的頁面DOM的先驗知識。 服務器信任瀏覽器正在發送有效的相關信息。 如果發布DOM(文檔對象模型-頁面加載並添加所有值后的原始HTML頁面),那么我可能可以提供更多幫助。

如果在初始頁面加載后將元素動態添加到DOM,則它們的工作原理相同。 選中此復選框時,要記住兩件事:

  • 必須在和之間插入復選框
  • 復選框值僅在選中時發送

您正在尋找的是.find()

jQUery僅在加載DOM(瀏覽器)時才能獲取可用的內容。 看到您要通過AJAX拉入一個復選框時,您將必須獲得將復選框放入其中的容器

例如

$('.container').find('.inner-box input[type="checkbox"]').val()

此后,如果尚未通過,我會將值添加到隱藏字段中。 盡管我不清楚您是要提交數據,然后填充字段,還是要輸入復選框,然后提交表單

暫無
暫無

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

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