jQuery弄乱了我的PHP


jQuery is messing with my PHP

我有一个我正在处理的注册表,

结果证明这是一个痛苦。

我对PHP很陌生,所以请给我一些松懈 - 哈哈。

我安装了一个jQuery插件,允许我为我的文本框制作内联标签。我还为注册过程中发生的任何错误(无效的电子邮件等)创建了一个错误框。这是我的一些HTML/PHP代码。

    <?php
    if($_POST['submit'])
    {
$signuperror = "Hello World";
     ?>
            <?php if($signuperror != "") { ?>
            <span id="signuperror"><?= $signuperror; ?></span>
            <?php } ?>

问题是当我单击表单上的提交按钮时,"Hello World"的"错误"没有显示。我将这段代码复制并粘贴到test.php文档中,它工作正常。所以我知道它必须来自我的其他 html 代码。在对几乎每一行代码进行故障排除后,我找到了罪魁祸首。事实证明,内联标签的jQuery插件初始化是问题所在。

    $(function(){
            $.fn.formLabels();
            $("form").submit(function(){
                var formVal = $("form").serialize();
                parent.$("#default div.results").html(formVal);
                return false
            })
        });

当我删除它时,它工作得很好(当然,没有我的内联标签)。

我能做些什么来使PHP和jQuery都工作。

谢谢。-莱恩

请注意$("form").submit()函数末尾的return false。这意味着jQuery函数正在取代表单的POST操作。您不会同步重新加载页面,因此您没有任何值 $_POST["submit"] 。删除return false行,然后查看页面是否按预期重新加载。

这里有很多事情正在发生。需要一步一步地做这件事。

  1. 您的 PHP 应该使用<?php格式或使用<?缩写形式,但为了确保我会用<?php编写所有代码,以便它在任何地方兼容
  2. 当您需要回显或输出某些内容时,请使用<?php echo $variable; ?>而不是<?=。并不是说它不好,但它会消除 asp 样式输出的任何 php 配置问题。
  3. 首先测试 php 输出,然后检查 if 语句。

Jquery不会弄乱你的PHP。这个标题和我的答案一样随机。