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é?
Lenke til kommentar
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
Lenke til kommentar

 

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!

Lenke til kommentar

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å
×
×
  • Opprett ny...