我有一个我正在处理的注册表,
结果证明这是一个痛苦。我对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
行,然后查看页面是否按预期重新加载。
这里有很多事情正在发生。需要一步一步地做这件事。
- 您的 PHP 应该使用
<?php
格式或使用<?
缩写形式,但为了确保我会用<?php
编写所有代码,以便它在任何地方兼容 - 当您需要回显或输出某些内容时,请使用
<?php echo $variable; ?>
而不是<?=
。并不是说它不好,但它会消除 asp 样式输出的任何 php 配置问题。 - 首先测试 php 输出,然后检查 if 语句。
Jquery不会弄乱你的PHP。这个标题和我的答案一样随机。