【问题标题】:How to write a javascript button which contains data?如何编写一个包含数据的javascript按钮?
【发布时间】:2012-03-27 19:05:48
【问题描述】:

如何创建一个 javascript 按钮以将信息从表单获取到 php sql:

<form>
    <input type="text" placeholder="Name" name="name" class="name" /></br>
    <input type="text" placeholder="Phone Number" name="number" class="number"/></br>
    <input type="text" placeholder="Location " name="location" class="location"/></br>
    <input type="submit" value="Add Booking" />
 </form>

?php
$name = $_GET['name'];
$number = $_GET['number'];
$location = $_GET['location'];

$con = mysql_connect(".....",".....",".....");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

("chanh", $con);
$sql ="INSERT INTO book (name, number, location,timestamp)
VALUES ('$name', '$number','$location',NOW())"; 

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added"

mysql_close($con);
?>

任何帮助将不胜感激,因为我只是一个菜鸟!谢谢

【问题讨论】:

  • 添加一个按钮,然后使用onclick="document.forms[0].submit()"
  • 如果你想提交表单,你的表单需要动作和方法属性。

标签: php javascript html sql


【解决方案1】:

您只需要指定表单的提交位置

<form action="submit.php" method="get">
    <input type="text" placeholder="Name" name="name" class="name" /></br>
    <input type="text" placeholder="Phone Number" name="number" class="number"/></br>
    <input type="text" placeholder="Location " name="location" class="location"/></br>
    <input type="submit" value="Add Booking" />
 </form>

只有在您想要执行某种验证时才需要 Javascript

注意

避免将变量直接添加到您的查询中,您将容易受到SQL injection 的攻击。

你可以这样做:

$con = mysql_connect(".....",".....",".....");
$name = mysql_real_escape_string($_GET['name']);
$number = mysql_real_escape_string($_GET['number']);
$location = mysql_real_escape_string($_GET['location']);

【讨论】:

    【解决方案2】:

    创建一个,然后设置当按钮被点击时,表单被提交。即

    but = document.getElementById('clickButton');
    formToSubmit = document.getElementById('myForm');
    
    but.onclick = function(){
        formToSubmit.submit();
    };
    

    【讨论】:

      【解决方案3】:

      您不需要 JavaScript 来提交表单。看起来您现在只是缺少 &lt;?php 中的 &lt;

      您可以在表单 HTML 元素上显式指定操作和方法,但如果您不这样做,则它是一个 GET 请求,它将提交到当前 URL(Web 地址)。

      真的,如果您正在做的不是获取数据(例如搜索),那么您的表单应该使用 HTTP POST,而不是 GET。要进一步了解为什么这种事情很重要,请参阅What should every programmer know about web development。但是,这是一个很大的话题!

      【讨论】:

        【解决方案4】:

        您只需要回发表单,换句话说,在表单上设置一个操作,如下所示:

        <form id="mainForm" action="process.php" method="post">..
        

        并在按钮上添加onclick 处理程序,如下所示:

         <input type="submit" value="Add Booking" onclick="javascript:document.getElementById('mainForm').submit();" />
        

        但是,并不是我将方法设置为post;这将需要您的 PHP 代码更改为:

        $name = $_POST['name'];
        $number = $_POST['number'];
        $location = $_POST['location'];
        

        在这种情况下可能不需要使用 POST,但您需要注意,使用 GET 会将 URL 中的表单参数编码为process.php?name=value&amp;numner=value...,并且其中一些信息可能是敏感信息,因此需要提交给HTTP 请求正文中的服务器,而不是在 URL 中编码的传输。

        【讨论】:

          猜你喜欢
          • 2020-06-28
          • 1970-01-01
          • 2014-03-28
          • 2013-08-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-09
          相关资源
          最近更新 更多