1

これは文字通り 2 週間前に質問されたもので、申し訳ありませんが、何か間違ったことをしているに違いありません。

私が持っている:

<form action="action.php">
    <input type="text" name="bar" />
    <input type="submit" name="submit" value="Go!" />
</form>

そして、対応する action.php で、

<script type='text/php'>
    $test = $_GET['bar'];

    if ($_GET['submit']) {
        $message = 'OK';

    }

    else {
        $message = 'No';
    }

</script>

<script>
    document.write(test);
    document.write(message);
</script>

結果は"Null"and "No"--$_GET['bar']と解釈されempty(そうでない場合)、$_GET['submit']返されませんtrue(ボタンをクリックしてページに到達した場合'submit')。

これはまさに、与えられたソリューションによって概説されている実装です....そうですか?

これは TideSDK では機能しなくなりましたか? ここで何が欠けていますか?これが PHP と TideSDK で達成できない場合、計算されたパラメーターまたはユーザーが入力したパラメーターをあるページから別のページに渡すための最良の方法は何ですか? みんな、ありがとう。

[注-コードをコピーして貼り付けたので、一部の省略/矛盾はなくなりました。ごめんなさい!】

4

3 に答える 3

1

フォームのフィールドとして foo を指定し、送信ボタンに名前を付ける必要があります。おそらく、フォームを変更することで、望ましい結果が得られます。

<form action="action.php" method="get">
        <input type="text" name="foo" value="1234" /> 
        <input type="text" name="bar" />
        <input name="submit" type="submit" value="Go!" />
    </form>

php では、次のように記述する必要があります。

<?php
$test = $_GET['bar'];


if ($_GET['submit']) {
    $message = 'OK';

}

else {
    $message = 'No';
    }


    echo $test;
    echo $message;
?>

あなたの場所にphpがインストールされているかどうかはわかりません。

JavaScriptで作成したい場合は、以下のものを使用してください。

<script>
//$test = $_GET['bar'];
function getParameterByName(name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

if (getParameterByName("submit")) {
    message = 'OK';

}

else {
    message = 'No';
    }

</script>
<script>
    document.write(getParameterByName("foo"));
    document.write(message);
</script>
于 2013-04-11T11:14:44.477 に答える
1

わかりました、私は答えを得ました。

それ私が間違っていたTideSDKの癖であり、PHP自体ではありませんでした。TideSDKガイドによる PHP の使用

Tide では、2 つの方法 (<script src="..." type="text/php">) のいずれかを使用して PHP ファイルを含める場合、<?php および ?> タグを省略する必要があります。

その他の方法 — request または include 関数を使用するか、php ファイル (フォーム アクション .php ファイルを含む) に直接移動する方法では、ファイルに開始タグと終了タグが必要です。

私はそれらを省略しなければならないことをしていると思ったので、それらを持っていませんでした。それにもかかわらず、構文が機能していたので壊れませんでした — PHP の前処理機能がなく、期待していたすべての $_GET 変数が空だっただけです。そのため、PHP ファイルをインクルードする方法が間違っている可能性に気付きませんでした。

これに時間を割いてくれたすべての人、特に、 var_dump を使用するように頼んだSilentboyに感謝します。これにより、<?php および ?> タグを除いて、var_dump、echo などが TideSDK で機能しない理由を考えるようになりました。

于 2013-04-11T19:10:21.243 に答える
0
 <input type="submit" value="Go!" />

の「送信」 という名前はどこにあり$_GET['submit']ますか?

使用して <input type="submit" name ="you" value="Go!" />
から求める $_GET['you']

簡単に確認できます

if (isset($_GET['bar']))
{
  $message = 'OK';
}
于 2013-04-11T11:17:37.340 に答える