您好,感谢您查看我的问题。我是一个完全的初学者,我正在寻找简单的方法来做以下事情......
我在单独的链接文档中有什么: HTML,CSS,Javascript,PHP
我遇到了什么问题:
我需要使用像JSON这样的东西(尽管我会在这一点上接受XML请求或Ajax,如果它们有效)将变量从Javascript传输到PHP。我需要在数据库中搜索变量,因此它们需要在PHP中实际可用(不仅可以在弹出消息或其他内容中看到)。
我已经看到了很多不同的方法来实现这一点,我甚至在YouTube上观看过教程,但是对我来说什么都没有用。我遇到的最大问题是,当我向表单添加提交按钮时,它不会提交我的表单,我不知道为什么。
表单代码段:
<form id="form" name="input" method="post" action="javascript:proofLength();">
<input id="userinput" type="text" autofocus />
<input id="submit" type="button" value="submit" onsubmit="post();">
</form>
倒数第二行不起作用。我需要javascript来提交表单吗?因为我真的认为在这种情况下它就像method =“post”...
一样是表单功能的一部分另一件事是,对于JSON,我不知道该怎么做,因为我的变量是由用户输入决定的。因此,我无法自己定义它们。它们仅由document.getElement定义...并且不符合JSON的语法。
这些是我目前的主要问题。因此,如果有人能告诉我一个简单的方法来完成这个变量传输,那将是惊人的。
在此之后,我将需要在我的数据库中搜索/比较一些php / sql(它已经连接正常),并且我需要能够根据我发现的真实情况将信息返回给HTML。我看到了一个例子,但我不确定这对我正在做的事情非常适用,所以如果你能够解释如何做到这一点,那也会很棒。
非常非常感谢你。 四月
答案 0 :(得分:0)
问题出在这一行
<form id="form" name="input" method="post" action="javascript:proofLength();">
该操作应该是将处理表单的PHP页面(或任何其他类型的服务器脚本)。
或者,proofLength函数必须在窗体上调用submit()
在php页面中,您可以使用$_GET["name"]
或$_POST["name"]
获取变量值
总结一下;你的代码应该是这样的
<form id="form" name="input" method="post" action="yourpage.php">
<input id="userinput" type="text" autofocus />
<input id="submit" type="button" value="submit">
</form>
和你的php页面:
<?php
$userinput = $_POST["userinput"];
//Do what ever you need here
?>
如果您想在提交表单之前在javascript中执行某些操作,请参阅this answer
答案 1 :(得分:0)
您不需要ajax来提交此表单。你甚至不需要javscript。就这样做:
<form id="form" name="input" method="post" action="mytarget.php">
<input id="userinput" name="userinput" type="text" autofocus />
<input id="submit" type="submit" value="submit" />
</form>
这会将表单数据发送到 mytarget.php (当然可以更改)
看到我已将名称属性添加到表单中的文本字段,我将按钮类型更改为提交。 现在你可以在mytarget.php中使用这样的数据:
<?
$username = $_POST['userinput'];
echo "Your name is: ".$username;
?>
您希望在提交中检查长度。有两种方法:
为1你必须附加一个事件监听器,如下所示:
var form = document.getElementById("form");
form.addEventListener("submit", function(event){
console.log("test");
var name = form.elements['userinput'].value;
if(name.length < 3){
alert("boy your name is short!");
event.preventDefault();
}
});
输入少于3个字符的名称,不会提交表单。在这里测试:http://jsfiddle.net/NicoO/c47cr/
在你的mytarget.php中:
<?
$username = $_POST['userinput'];
if(strlen($username) > 3)
echo "Your name is: ".$username;
else
echo "your name was too short!";
?>
您也可以使用ajax完成所有这些操作。你会在这里找到很多好的内容。但我建议使用像jQuery
这样的框架。