变量传输:与PHP连接到数据库的Web窗体

时间:2014-03-15 16:26:27

标签: javascript php css xml json

您好,感谢您查看我的问题。我是一个完全的初学者,我正在寻找简单的方法来做以下事情......

我在单独的链接文档中有什么: 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。我看到了一个例子,但我不确定这对我正在做的事情非常适用,所以如果你能够解释如何做到这一点,那也会很棒。

非常非常感谢你。 四月

2 个答案:

答案 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. 在发送输入之前(服务器没有被打扰)
  2. 让服务器检查输入
  3. 为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/

    1. 测试服务器
    2. 在你的mytarget.php中:

        <?
          $username = $_POST['userinput'];
          if(strlen($username) > 3)
              echo "Your name is: ".$username;
          else 
              echo "your name was too short!";
        ?>
      

      您也可以使用ajax完成所有这些操作。你会在这里找到很多好的内容。但我建议使用像jQuery这样的框架。