1

两周前有人问过这个问题,很抱歉,但我一定是做错了什么。

我有:

<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"并且"No"--$_GET['bar']被解释为empty(当它不是时),甚至$_GET['submit']不返回(当我通过单击按钮true到达页面时)。'submit'

正是给出的解决方案概述的实现......对吗?

这不再适用于 TideSDK 吗?我在这里想念什么?如果这在 PHP 和 TideSDK 中无法实现,那么将计算或用户输入的参数从一个页面传递到另一个页面的最佳方法是什么?感谢大家。

[注意-我复制/粘贴了代码,因此现在应该消除一些遗漏/不一致的地方。对于那个很抱歉!]

4

3 回答 3

1

好的,我有答案了。

我错的 TideSDK 的一个怪癖,而不是 PHP 本身。根据TideSDK 使用 PHP 指南

在 Tide 中,如果您使用两种方法之一 (<script src="..." type="text/php">) 包含 PHP 文件,则必须省略 <?php 和 ?> 标记。

其他方法——使用请求或包含函数或直接导航到 php 文件(包括表单操作 .php 文件),需要文件中的开始和结束标记。

我没有这些,因为我认为我正在做一些必须省略的事情。尽管如此,它并没有break,因为语法是功能性的——只是没有 PHP 预处理能力,而且我期待的所有 $_GET 变量都是空的。因此,我没有意识到我包含 PHP 文件的方法是错误的。

感谢所有在这方面花时间帮助我的人,尤其是要让我使用 var_dump 的silentboy,这让我思考为什么 var_dump、echo 等不能与 TideSDK 一起使用,除了 <?php 和 ?> 标签。

于 2013-04-11T19:10:21.243 回答
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 回答
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 回答