2013-02-25 56 views
0

新的在這裏,很高興,我從這個論壇得到了很多答案。然而,我現在仍然堅持着。抓取div內容併發送到php郵箱

我有一些JavaScript是創建一個窗口的顏色和處理選擇器(點擊顏色樣本它更改圖像,單擊一個句柄,它也是這樣)。圖像下方是所選窗口的說明。正在通過拉動圖像標題由javascript生成此文本。

現在有趣的部分。在這個選擇器下面,我需要添加一個表單,這個表單將使用php通過電子郵件發送。在該電子郵件中,我需要拉動由JavaScript生成的窗口描述。

今天我已經嘗試了很多東西,我已經失去了計數。我試圖代碼的最後1位是

<script> 
$(document).ready(function() { 

    $("windowDesc").each(function() { 
     var html = jQuery(this).html(); 
    }); 

}); 
</script> 

而在PHP郵件文件我補充說:

$windowtitle = $_GET['html']; 

以及試圖

$windowtitle = $_POST['html']; 

,我也試過如下:

<script> 
    var content = $('#windowDesc').html(); 
    $.ajax({ 
      url: 'send_mail.php', 
      type: 'POST', 
      data: { 
        content: content 
      } 
    }); 
</script> 

而在php郵件文件我補充說:

$windowtitle = $_GET['content']; 

以及試圖

$windowtitle = $_POST['content']; 

且不說其他的事情太多了。

基本上我想要做的是抓住保存生成的文本和電子郵件的div的內容。如果上述任何一個都是正確的,那麼我必須把他們放在錯誤的位置或者什麼東西上。第一個我在格子之外,在div之前,在格子之外嘗試過。只是還沒有嘗試過,在我的頭頂呢。這是一個漫長的一天,預先感謝:o)

對不起,推遲了,忙了兩天。好了,這裏是處理窗口顏色和處理選擇器的代碼:

var Color = "color"; 
var Handle = "handledescription"; 
var ColorDesc = "color"; 
var HandleDesc = "handle description" 
function Window(Color,Handle,ColorDesc,HandleDesc) { 
    $('#windowPic').animate({opacity: 0}, 250, function() { 
     thePicSrc = "http://www.site.com/images/windows/" + Color + Handle + ".jpg"; 
     $('#windowPic').attr('src', thePicSrc); 
     $('#windowDesc').html("<p>" + ColorDesc + " frame with " + HandleDesc + " hardware</p>"); 
     $('#windowPic').animate({opacity: 1}, 250) 
    }) 
} 
$(document).ready(function() { 
    $('#wColors li').click(function() { 
     Color = $(this).attr('id'); 
     ColorDesc = $(this).attr('title'); 
     Window(Color,Handle,ColorDesc,HandleDesc); 
    }); 
    $('#wHandles li').click(function() { 
     Handle = $(this).attr('id'); 
     HandleDesc = $(this).attr('title'); 
     Window(Color,Handle,ColorDesc,HandleDesc); 
    }); 
}); 
+0

JavaScript的'$ .ajax'看起來正確的,而帶'$ _POST'的PHP是正確的。但是,您需要將JavaScript放入事件處理函數中,以便在您執行觸發它的某些操作時運行它。如果你把它放在你的腳本的頂層,就會在第一次加載頁面時運行一次。 – Barmar 2013-02-25 19:13:26

+0

感謝您的回覆。我對javascript/ajax相當陌生,請將其放入事件處理函數中,以便進一步解釋。 – 2013-02-25 19:31:28

+0

類似於提交按鈕的點擊處理程序,或者顏色選擇器的完成功能。發生某些事情後,您必須運行AJAX代碼才能更改顏色。 – Barmar 2013-02-25 19:34:52

回答

0

你需要一個隱藏的輸入您的形式:

<form id="send_email" action="send_email.php"> 
    <input id="content" type="hidden" name="content"/> 
    ... other inputs here 
</form> 

然後你就可以使用JavaScript提交前填寫了:使用

$("#send_email").submit(function() { 
    $("#content").val($("#windowDesc").html()); 
} 
+0

是的,它的工作,非常感謝你。作爲一個注意事項,以幫助別人,只需要把一個);在js的結尾:o)謝謝Barmar,你是一個明星。 – 2013-03-01 18:23:30

0
<script> 
    var content = $('#windowDesc').html(); 
    $.ajax({ 
      url: 'send_mail.php', 
      type: 'POST', 
      data: content 
    }); 
</script> 

它在這裏工作。