0

我有一个电子邮件订阅者表单,我正在尝试使用电子邮件地址预先填充(它将显示在表单中)。

要使用的电子邮件地址包含在 URL 中

http://www.domain.com/page?email=joe@emailaccount.com  

表单中的输入字段为:

<input class="text" id="awf_field-48578149" type="text" name="email" value="" tabindex="501"  />

该页面位于将 Wordpress 作为 CMS 运行的站点上,因此由于安全问题,我不想使用“允许 PHP”插件执行 PHP。我尝试创建一个自定义 PHP 页面模板并包含语言以在 PHP 中分配变量,然后通过 javascript 分配 HTML。

首先,我创建了一个 custom-page.php 页面模板,包括以下内容:

<?php
/*
Get email from URL and set to email1 variable
*/
$email1 = $_GET['email'];
?>

<script type="text/javascript">
    var email2 = <?php echo json_encode($email1); ?>;
    document.getElementById("awf_field-48578149").value = email2;
</script>

接下来,我使用 custom-page.php 模板在 Wordpress 页面上包含表单代码。

挑战是在页面加载(预填充)时让变量值显示在输入框中。

我绝对不是编码员,但希望得到帮助。有任何想法吗?

这是表单代码(在使用模板的 Wordpress 页面上):

<!-- AWeber Web Form Generator 3.0 -->
<form method="post" class="af-form-wrapper" action="http://www.aweber.com/scripts/addlead.pl"  >
<div style="display: none;">
<input type="hidden" name="meta_web_form_id" value="787465482" />
<input type="hidden" name="meta_split_id" value="" />
<input type="hidden" name="listname" value="mhpc001" />
<input type="hidden" name="redirect" value="http://www.aweber.com/thankyou-coi.htm?m=text" id="redirect_3b0dde6df528b65fe85ebedf277b6e10" />

<input type="hidden" name="meta_adtracking" value="Existing_Owner" />
<input type="hidden" name="meta_message" value="1" />
<input type="hidden" name="meta_required" value="name,email" />

<input type="hidden" name="meta_tooltip" value="" />
</div>
<div id="af-form-787465482" class="af-form"><div id="af-header-787465482" class="af-header"><div class="bodyText"><p>&nbsp;</p></div></div>
<div id="af-body-787465482"  class="af-body af-standards">
<div class="af-element">
<label class="previewLabel" for="awf_field-48578148">Name: </label>
<div class="af-textWrap">
<input id="awf_field-48578148" type="text" name="name" class="text" value=""  tabindex="500" />
</div>
<div class="af-clear"></div></div>
<div class="af-element">
<label class="previewLabel" for="awf_field-48578149">Email: </label>
<div class="af-textWrap"><input class="text" id="awf_field-48578149" type="text" name="email" tabindex="501"  />
</div><div class="af-clear"></div>
</div>
<div class="af-element buttonContainer">
<input name="submit" class="submit" type="submit" value="Submit" tabindex="502" />
<div class="af-clear"></div>
</div>
</div>
</div>
<div style="display: none;"><img src="http://forms.aweber.com/form/displays.htm?id=7BzsLGysLBxM" alt="" /></div>
</form>

<!-- /AWeber Web Form Generator 3.0 -->
4

2 回答 2

0

我认为应该是:

<script type="text/javascript">
    var email2 = "<?php echo $_GET['email']; ?>";
    document.getElementById("awf_field-48578149").value = email2;
</script>
于 2013-05-03T22:07:59.677 回答
0

尝试将代码包装在:

jQuery(document).ready(function(){ //code here });

这将使浏览器等待执行代码,直到页面完成加载。此外,您可能需要考虑确保传递给 Javascript 的字符串只是一个电子邮件地址,而不是保护自己免受跨站点脚本攻击的代码。

于 2013-05-04T11:47:34.653 回答