我已經瀏覽了與此主題有關的其他各種問題,但我仍在努力尋找解決方案來查詢我的問題。使用AJAX將變量傳遞到PHP數組
在我的系統中,我允許管理員將額外的表格節點附加到文件中,以便他們可以輸入任何額外的所需數據,然後將該數據提交到數據庫以在網站的主要部分中生成頁面。
我對通過AJAX傳回數據的概念不熟悉,所以我可能會誤解某些內容,但這裏是我的代碼。
添加節點控制
<div id="nodeControl">
<div id="addNode">
<a id="nodeLink" href="#">+</a>
</div>
</div>
<div id="slideOut">Click to add a new section</div>
添加節點點擊響應函數
var nodeCount = 2;
$("#nodeLink").click(function(){
// Local Variables
var newSection = '<br/><div id="sectionInfo"><div id="sectionWrap"><div id="sectionInner"><label class="inst head">Section ' + nodeCount + '</label><input class="textOver" type="text" name="sectionTitle' + nodeCount + '" value="<?php $title; ?>"> <label class="inst ib">Please enter any text you would like associated with the section.</label> <textarea style="margin-top: 3px" name="sectionContent' + nodeCount + '" value="<?php $body; ?>"></textarea> <label class="inst ib">Please upload the image associated with this section, .PNG reccomended.</label> <input type="file" style="visibility:hidden;" name="img' + nodeCount + '" id="upload" /> <input type="button" id="fileStyle" class="fSOver" value="Upload Pump Image!" /> </div> </div> </div>' ;
// Append the new section to the document and increment the node count
$('#sections').append(newSection);
nodeCount += 1;
// Call AJAX to pass to PHP
$.ajax({
type: "POST",
url: "../section.php",
data: { setSection : newSection },
success: function() {
alert("Success, ajax parsed");
}
});
$(".successDiv").slideDown(150);
$(".successDiv").delay(1500).slideUp(150);
return false;
});
節點計數被實例化到「2」在這裏,當加入的節點的數量被附加到的name屬性我的表單上的任何輸入元素,即header2,header3等。 當我的表單最終被提交時,我可以遍歷每個數據字段並將其提交給數據庫。
正如我目前理解AJAX數據變量使用密鑰對{ a : b }
其中a = return key
和b = return value
,我想PHP能夠訪問該返回的值,並將其存儲爲可通過設置在端成環的陣列。 目前,成功消息是在我的AJAX調用中觸發的,但我無法訪問PHP中的值,而是引發了「定義的段的未定義索引」。
$section = array();
$setSection = $_POST['setSection'];
$section[] = $setSection;
感謝殺出我會考慮一些臨時存儲機制,我想,如果我將其存儲在一個數據庫我也不會明確地傳送回數據到PHP – Alex
順便說一下,我希望你的JavaScript在加載DOM之後才運行? – Blazemonger