Gå til innhold

[Løst] JS function med jquery/ajax lastes ikke?


Anbefalte innlegg

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
function updateInput(input) {
  var url = "http://localhost/lib/test.php?get=" + input;

  $.ajax({
    type:"GET",
    url: url,
    success: function(data) {
      var obj = JSON.parse(data);
      var num= obj.num;
      document.getElementById("numInput").value = num;
    },
    error: function(jqXHR, textStatus, errorThrown) {
      alert(jqXHR.status);
    },
    dataType: "jsonp"
  });​​​​​​​​​​​​​​​
}
</script>

Av en eller annen grunn får jeg feilmelding om følgende: Uncaught ReferenceError: updateInput is not defined

    at HTMLInputElement.onchange
 
Får ingen feilmeldinger når siden lastes, men når inputfield@onchange prøver å kjøre scriptet kalt updateInput, så feiler den. Noen som har en idé?
Videoannonse
Annonse

Du wrapper javascripten din inni script tagsene som du refererer jquery med. Løsningen er å lage egne script tags for logikken din.

 

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <input type="number" id="numInput" onchange="updateInput(this.value);">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>
    const url = "http://localhost/lib/test.php",
    updateInput = (userVal) => {
      let request = $.ajax({
        url       : url,
        method    : "GET",
        data      : {userVal},
        dataType  : "json",
        success   : (data) => {
          $( "#numInput" ).val( data.num );
        }
      });
    }
    </script>
  </body>
</html>

lib/test.php

<?php
die (
  json_encode(
    array(
      "num" => ( intval($_GET['userVal']) * 2)
    )
  )
);
Endret av Dan-Levi
  • Liker 1

 

Du wrapper javascripten din inni script tagsene som du refererer jquery med. Løsningen er å lage egne script tags for logikken din.

 

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <input type="number" id="numInput" onchange="updateInput(this.value);">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>
    const url = "http://localhost/lib/test.php",
    updateInput = (userVal) => {
      let request = $.ajax({
        url       : url,
        method    : "GET",
        data      : {userVal},
        dataType  : "json",
        success   : (data) => {
          $( "#numInput" ).val( data.num );
        }
      });
    }
    </script>
  </body>
</html>

lib/test.php

<?php
die (
  json_encode(
    array(
      "num" => ( intval($_GET['userVal']) * 2)
    )
  )
);

Tusen takk, det der funka konge!

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...