2016-12-14 96 views
1

所以我有一個AJAX函數,我想搜索具有特定類的每個元素,並將其值以適當的格式添加到AJAX中。那可能嗎?如何使用來自多個輸入的值填充AJAX?

我有這個AJAX功能:

function sendOrders(button) { 
    $.ajax({ 
     url: "external_file.php", 
     method: "POST", 
     data: { 
      /*Here I need to add the data*/ 
      GameID: "'.$_SESSION['GameID'].'", 
      Round: "'.$round.'", 
      UserID: "'.$_SESSION['UserID'].'", 
     } 
    }).done(function(msg) { 
     $("#DEBUG").html(msg); 
    }); 
}; 

,我需要收集隱藏式輸入的數據在頁面上帶class =「訂單」。

我知道我可以通過jquery類訪問每個元素,但我不知道如何將屬性添加到我的AJAX,當它已經寫入。這些元素的數量是可變的,並且它們具有非重複ID,類是相同的。輸入這個樣子:

<input class="order" type="hidden" name="some_name" id="some_id" value="some_value"> 

誰能幫助?

+1

因此,您不知道您將添加到AJAX中的輸入值有多少? –

+2

你可以,而且這有點瘋狂,可以將這些隱藏的元素添加到'form'中,並將他們的'name'屬性設置爲與您的數據中所需的密鑰相同。然後,當你發佈時,只需使用'$(form).serializeArray()'作爲'data'(因爲它看起來好像你沒有使用JSON)。這幾乎是HTML表單的創建目的。 –

+0

我同意只是把它們放在一個'form'中,然後序列化它們'data:$(「#my-form」)。serialize()'。簡單的解決方案。 –

回答

0

從我所瞭解的情況來看,您希望使用類命令從輸入中獲得的多個不同值的ajax調用?

假設你想只從這些字段添加值,你可以做很簡單的事情:

首先,更新具有附加輸入變量的AJAX功能,

function sendOrders(button, val) { 
$.ajax({ 
    url: "external_file.php", 
    method: "POST", 
    data: { 
     value : val, 
     GameID: "'.$_SESSION['GameID'].'", 
     Round: "'.$round.'", 
     UserID: "'.$_SESSION['UserID'].'", 
    } 
}).done(function(msg) { 
    $("#DEBUG").html(msg); 
}); 
}; 

然後,爲了獲得來自所有「訂單」類輸入的數據,您可以使用Jquery的「每個」功能。你是如何在你的Ajax功能使用的「按鈕」

$('.order').each(function(){ 
    sendOrder(buttonId, $(this).val()) 
}); 

不太清楚,但我:例如,如果你想從每個這樣的輸入值,你可以用你的新sendOrder功能在每個功能假設它與你的保存或提交按鈕相關聯,所以buttonId將是該按鈕的id。這將使用類順序遍歷所有輸入,並使用這些值進行ajax調用。

如果你使用的按鈕作爲提交你也許可以把它拿出來一起從AJAX功能,並有這樣的事情:

function sendOrders(val) { 
$.ajax({ 
    url: "external_file.php", 
    method: "POST", 
    data: { 
     value : val, 
     GameID: "'.$_SESSION['GameID'].'", 
     Round: "'.$round.'", 
     UserID: "'.$_SESSION['UserID'].'", 
    } 
}).done(function(msg) { 
    $("#DEBUG").html(msg); 
}); 
}; 
$('#buttonId').click(function(){ 
    $('.order').each(function(){ 
     sendOrder(buttonId, $(this).val()) 
    }); 
}); 
+0

如果我理解正確,您希望分別用不同的AJAX調用發送每個輸入值。如果這是真的,我將不得不編輯external_file.php來使用它。 我想我會使用上面評論的提示,但無論如何非常感謝。 –

0

創建的數據對象,遍歷所有的投入,並將值添加到對象。

function sendOrders(button) { 
    var data = { 
     GameID: "'.$_SESSION['GameID'].'", 
     Round: "'.$round.'", 
     UserID: "'.$_SESSION['UserID'].'", 
    }; 
    $(button).closest("form").find("input[type=hidden]").each(function() { 
     data[this.name] = this.value; 
    }); 
    $.ajax({ 
     url: "external_file.php", 
     method: "POST", 
     data: data 
    }).done(function(msg) { 
     $("#DEBUG").html(msg); 
    }); 
}; 
相關問題