0

対処しなければならない非常に具体的な問題があります。

ページの読み込み時にデータベースに値が保存されているフィールドの値を事前に入力するマーケティングオートメーションプラットフォームを使用しています。

目的は、ページ上でユーザーに一連の質問をすることですが、データベースに値が欠落している質問のみです。

ただし、一度に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>
4

0 に答える 0