2017-02-15 53 views
0

我想用ajax克隆整個html頁面,填充表單數據,填入用戶輸入,然後用php保存整個頁面,包括輸入值。我能克隆但不發送這些數據。我怎樣才能做到這一點?我可以發送html添加.html(),但我不能用這種方式發送數據。如果我只是克隆它,我會得到表格中的數據...但我無法發送它。我得到的錯誤從jQuery的這個形象:jQuery獲取包括表單輸入在內的整個html頁面 - 發送到php保存

enter image description here

$(document).ready(function() 
    { 

$('.ClickMe').click(function(event) 
{ 
event.preventDefault(); 
var TheClone = $('.TheBody').clone(); 
console.log("Cloned"); 
//$('.TheBody').append(TheClone); 

$.ajax({ 
type: 'POST', 
url: "SaveForm.php", 
data: { 
    MyData: TheClone 
}, 
success: function (data) { 
    // 
}, 
error: function (req, status, error) {} 
}); 

這裏是我的PHP保存,這工作,但數據不會從jQuery的到達那裏。

<?php 
$Data = $_POST['MyData']; 
file_put_contents('SavedForms/saved.php', $Data); 

?> 
+0

'$數據= $ _ POST [「邁德特」];'你不覺得 –

+0

爲什麼你會不只是seriealize的形式,並通過輸入值? – gavgrif

+0

如果我將它們序列化,那麼我會在正確的位置將它們重新放回窗體中嗎?我從來沒有這樣做過。 –

回答

1

如果你要發送的jQuery對象的字符串(HTML)的服務器,你應該先提取該對象的HTML:

var TheClone = $('.TheBody').clone().html(); 

二(如已經評論),裏面PHP你應該使用$_POST['MyData'];(密鑰應該是字符串MyData而不是常數)。

+0

這可以保存輸入字段中的html而不是表單數據。我怎樣才能保存呢? –

+0

我能克隆但不發送這些數據。我怎樣才能做到這一點。我可以用你的代碼發送html,但我無法發送數據。如果我只是克隆它,我會得到表格中的數據...但我無法發送它。 –

+0

你期望得到什麼數據?爲什麼不直接發送表單本身? – Dekel

1

解決的問題:

我把它通過硬編碼用戶輸入一個DOM變化,然後發送通過AJAX的HTML代碼的HTML工作。我希望這個想法可以幫助其他人。我能夠很好地克隆html頁面,但是我無法通過Ajax將這些克隆與數據一起發送。我可以將html保存爲Dekel上面提到的,但是這沒有數據。

因此,隨着用戶使用jQuery改變數據,我將數據保存到html。我使用了輸入和複選框。我給所有的複選框添加了一個MyCheck類,並且所有的文本都輸入了一個MyInput類。這是我使用的代碼。

$('.MyInput').on("change paste keyup", function() 
    { 
    var MyVal = $(this).val(); 
    $(this).attr('value', MyVal); 
    }); 

    $('.MyCheck').on("change paste keyup", function() 
    { 
    if($(this).attr("checked")) 
    $(this).removeAttr("checked"); 
    else 
    $(this).attr('checked', 'checked'); 

    }); 


    $('.ClickMe').click(function(event) 
    { 
    event.preventDefault(); 

    var TheClone = $(".TheBody").html(); 

    $.ajax({ 
    type: 'POST', 
    url: "SaveEnrollment.php", 
    data: { 
     MyData: TheClone 
    }, 
    success: function (data) { 
     window.location = "/thank-you"; 
    }, 
    error: function (req, status, error) {} 
}); 
相關問題