【问题标题】:fill articlenumber automatically after writing articlename写文章名称后自动填写文章编号
【发布时间】:2018-03-16 09:55:20
【问题描述】:

我有一个 HTML <form>,我用 创建它。它包含三个<input> 字段。 第二个<input> 字段应在填充第一个字段时自动填充。通过 API 触发 HTTP 请求。该请求工作正常,并提出了文章编号。我已经测试过了。

问题是,只要填充了另一个字段,它就必须运行请求并填充该字段。 我已经用 jQuery 试过了:

<script>
$(document).ready(function(){
    $("input[name*='artNr1']").click(function(){
      .get("artikelnamen_suchen.php", nummeruebergeben($_POST['artName1']));
    });
});
<script>

感谢任何帮助。

Form screenshot

【问题讨论】:

  • 请记住 StackOverflow 是一个全球社区。 :-) 感谢您的感谢,但我想提醒您使用英语,即使对于明确针对能够理解该语言的用户的 cmets 也是如此。其他人可能会发现您的评论也很有用,而您使用英语以外的其他语言将他们排除在外。
  • :D 不,我没有。我有一个 php 函数。我需要ajax吗?不知道ajax。 i GET 文章名称和文章编号。
  • 我只需要获取输入字段(articleName)。使用 articleName 我可以获得文章编号。但是如何将文章名称添加到我的 php 函数中?
  • 发布了答案。请移除您的 cmets,因为它们不再需要。

标签: php javascript php jquery ajax forms


【解决方案1】:

我想你忘了在.get() 之前插入$(美元符号)

你的代码应该是这样的:

<script>
$(document).ready(function(){
    $("input[name*='artNr1']").click(function(){
      $.get("artikelnamen_suchen.php", nummeruebergeben($_POST['artName1']));
    });
});
<script>

【讨论】:

    【解决方案2】:

    提供change() 方法来监听更改事件,例如在&lt;input&gt; 字段上。您可以用它替换 click() 处理程序。

    $("input[name*='artNr1']").change(function(){
      $.get("artikelnamen_suchen.php", nummeruebergeben($_POST['artName1']));
    });
    

    您的代码的问题是,您使用 PHP 变量 $_POST['artName1'] 调用 .get()。这显示了两个缺陷:

    1. 如果用那个 PHP 值替换有效,它会在服务器端进行评估,因此永远不会用来自客户端的 &lt;input&gt; 的当前值替换
    2. 您似乎希望通过 POST 传输值,但您使用 .get() 通过 GET 传输它。

    要解决第一个缺陷,您需要使用第一个 &lt;input&gt; 中的值,而不是从 PHP 评估的值。

    $("input[name*='artNr1']").change(function(){
        var articleNumber = $(this).val();
        //TODO: $.get("artikelnamen_suchen.php", nummeruebergeben($_POST['artName1']));
    });
    

    因为您当前位于第一个 &lt;input&gt; 字段的 onChange 处理程序中,所以它可用作该函数中的 this 上下文。使用.val(),您可以访问其当前值。

    要解决第二个缺陷,您可以使用两种不同的方法。使用.post()mehtod 将您的数据作为 POST 发送到 PHP:

    $("input[name*='artNr1']").change(function(){
        var articleNumber = $(this).val();
        $.post("artikelnamen_suchen.php", {
            'artName1': articleNumber
        }).success(function(result){
            //Work with the result here
        });
    });
    

    或者以 GET 的形式提供信息并在 PHP 中以 $_GET 字段而不是 $_POST 的形式访问它:

    :

    $("input[name*='artNr1']").change(function(){
        var articleNumber = $(this).val();
        $.get("artikelnamen_suchen.php?artName1=" + articleNumber)
            .success(function(result){
                //Work with the result here
            });
    });
    



    $articleNumber = $_GET['artName1'];
    ... //Use $articleName instead of $_POST['artName1'] in your PHP code.
    

    之后,您可以使用result 替换第二个输入中的值。但那是另一个问题...... :-D

    【讨论】:

      猜你喜欢
      • 2017-10-22
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 2010-11-11
      相关资源
      最近更新 更多