larsgrau Seniormester
25. maj 2020 - 18:53 Der er 1 kommentar og
2 løsninger

data fra php til java

hej jeg har følgende sider. en side hvor bruger skal skrive noget og hvis det findes i databasen skal den skrive det i nogle text felter.

index.php:
<html>
<script src="http://localhost/test3/jquery.min.js"></script>
<script>
    $(document).ready(function(){
       
        $("input").keyup(function(){
            var name = $("input").val();
            $.post("suggestions.php",{
                suggestion: name
            }, function(data, status){
                $("#test").html(data);
            });
        });
    });
</script>
</head>
<body>

<input type="text" name="name">

<p id="test"></p>

suggestions.php:

<?php
   
    include '../conf/dbconfig.php';
   
    $name = $_POST['suggestion'];
   
    $sql = "SELECT * from shiplist WHERE shipname='$name'";
    $result = mysqli_query($db,$sql);
    $queryResults = mysqli_num_rows($result);
   
    if ($queryResults > 0){
        while ($row = mysqli_fetch_array($result)){
           
            $classname = $row['Classname'];
            $shiprole = $row['shiprole'];
            echo $classname;
            echo "<br>";
        }
    }
?>

Det virker ok, den skriver hvad den skal i <p id="test"></p>

men jeg vil gerne have den sætter det ind i en sådan en her:

<input name="testname" id="test"> men det kan jeg ikke få til at virke nogen som har en ide til hvordan man får den til det ?
Slater Ekspert
25. maj 2020 - 19:57 #1
Input understøtter ikke HTML-indhold, så du er også nødt til at ændre
$("#test").html(data);
til
$("#test").val(data);


- Og bare for at nævne det, så er der meget stor forskel på Java og Javascript. Dette er Javascript, ikke Java.
olsensweb.dk Ekspert
27. maj 2020 - 11:45 #2
@larsgrau: er du kommet vidre ??
jeg ville lade suggestions.php retunerer json, det gør det nemmere at arbejde med.
hvad hvis der er flere rækker der opfylder betingelsen ?

jeg ville lave mit html via JS

hvorfor bruger du .keyup og ikke .blur ??
ved .blur henter du først data når du er færdig med at skrive, dvs når du forlader input feltet

du får flerer muligheder ved at bruge "$.ajax" istedet for "$.post"

ref https://api.jquery.com/jquery.post/
$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

er den udvidet udgave af:
$.post( "ajax/test.html", function( data ) {
  $( ".result" ).html( data );
});
larsgrau Seniormester
27. maj 2020 - 20:05 #3
hej igen

jeg er kommet videre begge forslag virker. men jeg har valgt at bruger følgende metode:

Index.php

<input type="text" name="Name" list="shipname" onchange="boxname()" size="1" id="Combobox2" style="position:absolute;left:118px;top:640px;width:405px;height:20px;z-index:3;" tabindex="4">
<datalist id="shipname">
<?php
$res=mysqli_query($db,"select * from shiplist");
while($row=mysqli_fetch_array($res))
{
?>
<option><?php echo $row["shipname"]; ?></option>
<?php
}
?>
</datalist>


<script>
function boxname(){
    var ajax = new XMLHttpRequest();
    var method = "GET";
    var x = document.getElementById("Combobox2").value;
    var url = "data.php?shipname=" + x;
    var asynchronous = true;
   
    ajax.open(method, url, asynchronous);
   
    ajax.send();
   
    ajax.onreadystatechange = function()
    {
            if (this.readyState == 4 && this.status == 200)
            {
                var data = JSON.parse(this.responseText);
                console.log(data)
               
                var html = "";
               
                for (var a = 0; a < data.length; a++)
                {
                    var skibsnavn = data[a].shipname;
                    var Classnavn = data[a].Classname;
                    var shiprole = data[a].shiprole;
                    var shippnt = data[a].shippnt;
                    var shipcountries = data[a].shipcountries;
           
           
                }
                document.getElementById("classname").value = Classnavn;
                document.getElementById("shiprole").value = shiprole;
                document.getElementById("shippnt").value = shippnt;
                document.getElementById("Country").value = shipcountries;
            }
    }
}
</script>

<input id="classname">
<input id="shiprole">
<input id="shippnt">
<input id="Country">

data.php

$shipname = $_GET['shipname'];

$result = mysqli_query($db,"SELECT * from shiplist WHERE shipname='$shipname'");

$data = array();
while ($row= mysqli_fetch_assoc($result))
{
    $data[] = $row;   
}

echo json_encode($data);

og det virker bare som det skal og køre godt.
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Efter 24 år valgte Niels Elbek at fratræde posten som topchef i Elbek & Vejrup: Se her hvorfor
Gennem 24 år har Niels Elbek stået i spidsen for it-selskabet Elbek & Vejrup, som han har stiftet sammen med Lars Vejrup. Selskabet har kunne fremvise tocifrede vækstrater de seneste mange år, men alligevel takker topchefen nu af - se her hvorfor.
Job & Karriere
På jagt efter et it-job i Jylland? Her er 10 stillinger fra Aabenraa til Aalborg, der ledige netop nu
Vi har fundet en række spændende stillinger til dig, der jagter et it-job. Her kan du vælge og vrage mellem ledige stillinger lige fra Aabenraa til Aalborg.
White paper
Sådan kan du arbejde effektivt uanset tid, sted og type af enhed
Hvad nu hvis dit arbejde, din information, dine processer og teknologien bag ved, var organiseret på en måde så det passede til din organisation – alt sammen guidet af en intelligent udgave af det digitale arbejdsrum? Det er visionen bag Atea og Citrix´s samarbejde med digital workspace – en smartere og mere effektiv måde at arbejde på. I dette whitetpaper kan du derfor læse om, hvordan du kan skabe et mere effektivt og brugervenligt arbejdsrum uanset tid, sted og enhed. En løsning der på en gang er både enkel og som sætter brugeren i centrum.