【问题标题】:Get value of input box, without a form?获取输入框的值,没有表单?
【发布时间】:2011-02-04 12:46:16
【问题描述】:

有谁知道我如何在没有表单的情况下获取输入框的值?我想要一个提交按钮,但不是提交表单,而是希望它更改 MySQL 数据库中的数据。可能是这样的?

$img1="WHAT DO I PUT HERE?"
$idx=1  
$sql="INSERT INTO games SET img1='$img1' WHERE id=$idx";  
$result=mysql_query($sql); 

我可以在“onclick”事件中使用该代码吗?输入框的名称和id为“img1”。

【问题讨论】:

  • 输入是输入?如果是这样,那么如果 中,PHP 就无法知道它的价值。
  • 为什么要关心是否使用表格?如果您想要一个按钮并且想要字段,这似乎是一种合理的方法。
  • 使用带有按钮的输入和带有带有按钮的输入的表单有什么区别?你可以对表单数据做任何你想做的事情,没有人知道你在服务器端做什么。
  • 我不知道如何从输入框中获取要提交的数据。输入框不在表单内,如何获取提交的数据?
  • 与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.

标签: php forms mysql


【解决方案1】:

如果你不想提交表单,另外两种实现方式是点击url中带有数据作为查询参数的链接,或者使用AJAX在后台将数据发送到服务器.

更新:

Javascript,像往常一样。您可以在页面上的某处放置一个链接或按钮,其中包含“发送到服务器”或任何文本。该脚本将从输入字段中提取您的信息,然后通过 AJAX 调用将其发送到服务器。沿着这些思路(请注意,我使用Mootools 来完成这一切,因为它比自己进行远程调用更容易):

 function clickHandler() {
     var img1 = $$("input[name='img1']")[0].value;

     var r = new Request.JSON({
         'url: 'http://yourserver.example.com/script.php',
         'method': 'post',
         'onComplete': function(success) { alert('AJAX call status: ' + (success ? 'succeeded': 'failed!'); },
         'onFailure': function() { alert('Could not contact server'); },
         'data': 'img1=' + img1
     }).send();
}

在服务器上你会有类似的东西:

<?php

$img1 = mysql_real_escape_string($_POST['img1']);
$idx=1;
$sql="INSERT INTO games SET img1='$img1' WHERE id=$idx";  
$result=mysql_query($sql);

echo (($result !== FALSE) ? 1 : 0);

您可能想要比这更复杂的东西,但这是 AJAX 应用程序的基础。一些发出请求的客户端 javascript,以及处理它们并根据需要返回任何数据/错误的服务器上的脚本。

【讨论】:

  • 如何从输入框中获取数据以在 URL 中发送?
  • 您需要使用 JavaScript,因为它可以访问活动的 DOM,因此可以对其进行任何更改(例如字段值中的更改)。
【解决方案2】:

不知道您是完全反对使用表单还是可能不知道如何隐藏它。

您可以创建一个隐藏表单,只需单击一个按钮即可提交信息。

<form name="hidden-form" action="youraction.php" method="post">
<input type="hidden" name="submitme" value="I get submitted">
<input type="hidden" name="submitmetoo" value="I get submitted">
<input type="hidden" name="submitmeaswell" value="I get submitted">
<input type="hidden" name="dontleavemeout" value="I get submitted">
<input name="submit" type="submit" value="SUBMIT" />
</form>

但是任何查看您的 html 的人都可以看到这个

【讨论】:

    【解决方案3】:

    我想这就是你要找的。 这仅在您的 html 和 php 在同一个文件中时才有效...

    <html>
    <head>
    </head>
    
    <body>
    <input type='text' id='user' placeholder='user'>
    </body>
    </html>
    
    
    <?php
    $val = "
    <script>
    document.write(document.querySelector('#user').value);
    </script>
    ";
    echo $val;
    ?>
    

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多