在写下文章名

时间:2018-03-16 09:55:21

标签: javascript php jquery ajax forms

我有一个HTML <form>并使用创建它。它包含三个<input>字段。 当填充第一个<input>字段时,应自动填充第二个<script> $(document).ready(function(){ $("input[name*='artNr1']").click(function(){ .get("artikelnamen_suchen.php", nummeruebergeben($_POST['artName1'])); }); }); <script> 字段。通过API触发HTTP请求。请求工作正常,并提出文章编号。我已经测试过了。

问题是,每当填充其他字段时,它必须运行请求并填充字段。 我用jQuery尝试过它:

map[string]interface{}

感谢任何帮助。

Form screenshot

2 个答案:

答案 0 :(得分:0)

我认为您忘记在$

之前插入.get()(美元符号)

您的代码应该是这样的:

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

答案 1 :(得分:0)

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

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

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

  1. 如果使用该PHP值进行替换,则会在服务器端进行评估,因此永远不会替换为客户端上存在的<input>中的当前值
  2. 您似乎希望通过POST转移价值,但您可以使用 .get()通过GET转移。
  3. 要解决第一个缺陷,您需要使用第一个<input>中的值,而不是从PHP计算的值。

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

    由于您当前位于第一个onChange字段的<input>处理程序中,因此该字段可用作该函数中的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