1

我正在为一个为青少年组织研讨会的组织创建一个表格。可以选择带一个或两个父母参加研讨会。因此,对于每位家长来说,都有一个投递箱来回答“你也参加研讨会吗?”这个问题。根据是否有一个、两个或没有父母加入,用户将在提交后被重定向到不同的 url(提交总是在同一个地方)。该表单是在 Joomla 中使用 chronoforms 构建的。

这是下拉列表的代码,请注意我不能更改值“Ja”或“Nee”,因为这个值也被发送到数据库,我不允许更改它。下拉菜单的代码:

    <select class="cf_inputbox validate-selection required" id="select_17" size="1" title="verplicht veld" name="oudersessieouder1" style="width: 193px;">
    <option value="">Make your choice</option>
<option value="Ja">Yes, will participate</option>
<option value="Nee">No, will not participate</option>
    </select><label class="cf_label" style="width: 150px;"> Will this parent join the workshop?</label>

<select class="cf_inputbox validate-selection required" id="select_18" size="1" title="verplicht veld" name="oudersessieouder2" style="width: 193px;">
    <option value="">Make your choice</option>
<option value="Ja">Yes, will participate</option>
<option value="Nee">No, will not participate</option>
    </select><label class="cf_label" style="width: 150px;"> Will this parent join the workshop?</label>

这是提交代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>bedankt</title>
</head>

<body>
<script>

if (one parent comes, so one of the 2 dropdown values will be "Ja")
window.location.replace("http://www.website.be/inschrijven-pe-jongeren-1-parent.html")
else if (both parents come, so both dropdown values will be "Ja")
window.location.replace("http://www.website.be/inschrijven-pe-jongeren-both-parents.html")
else
window.location="http://www.website.be/inschrijven-pe-jongeren.html"
</script>
<p align="center">&nbsp;</p>
</body>
</html>

现在我仍然需要 on sumbit 代码的逻辑。如果父母一方加入,则转到该网址,如果父母双方都加入,则转到该网址,如果没有父母加入,则转到该网址。

如果有人可以帮助我,将不胜感激!

4

2 回答 2

1

我不清楚您的表单中的“提交时”代码在哪里。如果您使用 JavaScript 进行重定向,那么 ChronoForms 将永远不会看到提交的数据,也无法以任何方式处理结果。

如果您希望 ChronoForms 处理数据,请在 On Submit 事件的自定义代码操作中使用如下代码:

<?php
if ( $form->data['oudersessieouder1'] == 'ja' && $form->data['oudersessieouder2'] == 'ja' ) {
  $form->data['redirect_url'] = JUri::root().'inschrijven-pe-jongeren-both-parents.html';
} elseif ( $form->data['oudersessieouder1'] == 'ja' || $form->data['oudersessieouder2'] == 'ja' ) {
  $form->data['redirect_url'] = JUri::root().'inschrijven-pe-jongeren-1-parent.html';
} else {
  $form->data['redirect_url'] = JUri::root().'inschrijven-pe-jongeren.html';
}
?>

然后,您可以在重定向用户操作中使用 redirect_url。

注意:您应该在此之前使用服务器端验证来检查是否设置了两个值。

如果您想直接从浏览器在 JavaScript 中执行此操作,则需要将上面的代码放在一个函数中,并从选择下拉菜单的 OnChange 事件中运行该函数。目前它只会在页面加载时运行,而不是在进行选择时运行。

于 2015-02-20T10:22:58.867 回答
0

看起来您忘记在第二个 if 上添加 else,

if [条件]
else if [条件]
else

于 2015-02-19T11:44:02.730 回答