対処しなければならない非常に具体的な問題があります。
ページの読み込み時にデータベースに値が保存されているフィールドの値を事前に入力するマーケティングオートメーションプラットフォームを使用しています。
目的は、ページ上でユーザーに一連の質問をすることですが、データベースに値が欠落している質問のみです。
ただし、一度に5 つ以上の質問でユーザーを攻撃したくはありません。
これを行うと、この同じユーザーが次にページにアクセスしたときに (クエリ文字列の値に従ってページのコンテンツが表示されます)、値が欠落している行で NEXT 5 (またはそれ以下) の質問をする必要があります。
このようにして、複数のページで同じフォームを使用できますが、質問の流れは損なわれず、進行中の誰がどこにいるのかを気にする必要もありません。
したがって、例は次のようになります。
合計質問数 - 10
John Doe が最初にページに移動すると、
q1、q3、q4、q5、q6のみが表示されます。これは、データベースに
q2
の
値があり、一度に 5 つのフィールドに表示を制限しているためです。
次にJDが同じページに移動すると、q7、q8、q9、およびq10が表示されます(または、データベースに値がある場合はより少ないフィールド)
常に一定のフィールドがあるため、フィールドが表示されない可能性があるというシナリオはありません。
それは理にかなっていますか?
機能面でこれまでに私が思いついたものは次のとおりです。
私が助けを必要としているのは、これを機能させる方法のロジックです。
<script language="JavaScript">
var fieldName;
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
Requests = {
QueryString : function(item){
var svalue = location.search.match(new RegExp(“[\?\&]” + item + “=([^\&]*)(\&?)”,”i”));
return svalue ? svalue[1] : svalue;
}
}
function showField(fieldName) {
document.getElementById(fieldName).style.display = "block";
}
function hideField(fieldName) {
document.getElementById(fieldName).style.display = "none";
}
function showHideField(fieldName) {
if (document.getElementById(fieldName).style.display == "block")
{
document.getElementById(fieldName).style.display == "none";
};
if (document.getElementById(fieldName).style.display == "none")
{
document.getElementById(fieldName).style.display == "block";
};
}
function isBlank(fieldName) {
if (fieldName.value=="null" || fieldName.value=="") { return true; }
else { return false; }
}
</script>