0

私は小さなボタンを持っています。このボタンを押すと名前を尋ねられ、その入力が URL に追加され、PHP で処理できるようになります。私のコードは以下です。

    function staff_prompt(url)
  {
  var url = url;
  var staffname=prompt("Please enter your Name below:","Staff Member Name");
  if (staffname == null)  {
  } 
  else if (staffname == "Staff Member Name") {
  alert('You must enter a value to continue');
  staff_prompt();
  }
  else if (staffname == "") {
  alert('You must enter a value to continue');
  staff_prompt();
  }
  else {
  var windowgo = url + "&staffmember=" + staffname;
  window.location = windowgo;
 }
 } 

マイボタンのコードは以下

onclick="staff_prompt('index.php?app=orders&page=action&action=go_orderedviewtype=<?php echo $viewtype ?>&orderid=<?php echo $orderid ?>') 

うまく機能することもありますが、「http://undefined....ect」に移動するように見えることもあります。状況を再現できない場合もあります。

コードがあまり良くないのではないかと考えています...なぜjavascriptが変数「url」を検出しないことがあるのでしょうか。

4

3 に答える 3

3

はい、コードに問題があります。

staff_prompt()あなたはelse if条件の両方から関数を呼び出しています & そのurl中にパラメータとして渡していないので、それは間違いなくundefined.

于 2012-12-24T08:33:38.313 に答える
2

ここで URL は未定義です。未定義のパラメータで関数を呼び出しています:

staff_prompt();

そのため、else if-s に入る限り、未定義の URL を取得することになります。

コードを に変更するstaff_prompt(url);と問題ありません。

于 2012-12-24T08:33:27.047 に答える
0

エラーの後にstaff_promptを呼び出す場合、URLを渡しません。

function staff_prompt(url) {
    var url = url;
    var staffname=prompt("Please enter your Name below:","Staff Member Name");
    if (staffname == null)  {
    } else if (staffname == "Staff Member Name") {
        alert('You must enter a value to continue');
        staff_prompt(url);
    } else if (staffname == "") {
        alert('You must enter a value to continue');
        staff_prompt(url);
    } else {
        var windowgo = url + "&staffmember=" + staffname;
        window.location = windowgo;
    }
}

例: http: //jsfiddle.net/burlak/CsrTc/3/

于 2012-12-24T08:52:11.383 に答える