2013-02-25 59 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> 

它在这里工作。