TideSDK $ _GET检索显示为null

时间:2013-04-11 11:05:11

标签: php get tidesdk

有人问literally two weeks ago,对不起,但我一定做错了。

我有:

<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'按钮到达页面时)。

这是完全 solution given概述的实现....对吗?

这不再适用于TideSDK吗?我在这里错过了什么?如果在PHP&amp; TideSDK,我将计算或用户输入的参数从一个页面传递到另一个页面的最佳方法是什么?谢谢大家。

[注意 - 我复制/粘贴了代码,因此现在应该删除一些遗漏/不一致的内容。对不起!]

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

好的,我已经得到了答案。

TideSDK的怪癖我错了而不是PHP本身。根据{{​​3}}

在Tide中,如果使用两种方法之一(&lt; script src =“...”type =“text / php”&gt;)包含PHP文件,则必须省略&lt;?php和?&gt;标签

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

我没有那些,因为我以为我在做一些必须省略的事情。尽管如此,它还没有中断,因为语法功能正常 - 只是PHP预处理能力不存在而且我所期待的所有$ _GET变量都是空的。因此,我没有意识到我的包含PHP文件的方法是错误的。

感谢所有花时间帮助我的人,特别是TideSDK Guide to Using PHP,他让我使用var_dump,这让我想到为什么var_dump,echo等不能用于TideSDK,除了&lt ;?php和?&gt;标签

答案 2 :(得分:0)

 <input type="submit" value="Go!" />

$_GET['submit']的名称“提交”在哪里?

使用 <input type="submit" name ="you" value="Go!" /> 然后询问 $_GET['you']

易于检查

if (isset($_GET['bar']))
{
  $message = 'OK';
}