Toon posts:

Meerdere variabele in een url meesturen in javascript

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb een Html pagina met daarop een selectbox. Deze selectbox wil ik graag direct update als er een verandering is. Dus heb ik een onchange functie hieraan gegeven. In deze JS-functie maak ik connectie met het PHP bestand. Alleen krijg ik het niet voor elkaar om meerdere values mee te geven......eentje gaat prima maar daarna werkt niks meer.......momenteel stuur ik alleen de value van de selectbox mee en moet ik dus het ID waar deze aan gekoppeld zit hard invullen......graag wil ik deze ook mee sturen.

Mijn vraag is dus:
Hoe kan je in Javascript meerdere variabele meesturen in een url GET link?

Momenteel heb ik deze link met met maar een VAR "str" erin:
code:
1
xmlhttp.open("GET","Update.php?q=" + str, true);


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$q = $_GET['q'];

echo $q;

$conn = mysqli_connect('localhost','root','','user');
if (!$conn) {
    die('Could not connect: ' . mysqli_error($conn));
}

$sql = "UPDATE `plaats` SET `plaats_namer`='$q' WHERE id = 500";
$result = mysqli_query($conn,$sql);
?>


Zoals je hierboven kunt zien heb ik dus het id hard moeten invullen.......

Dit heb ik al geprobeerd:
code:
1
xmlhttp.open("GET","Update.php?q=" + str +"&number=" + val, true);


Hierbij denk ik wel dat ik er bijna ben omdat er volgensmij alleen nog " om de tekst en het id nummer komen te staan waar door deze niet werkt in de update query....

Is er iemand die mij kan helpen met het oplossen van dit probleempje?

Alle reacties


Acties:
  • +2 Henk 'm!

  • m-designz
  • Registratie: Juni 2009
  • Laatst online: 08:57
Volgens mij zou die request gewoon moeten werken.

Wat gaat er nu fout? komt de parameter niet door in je php bestand of heb je moeite met het uitlezen van de GET params?

zet anders in je php bestand even print_r($_GET); om te zien of de parameter echt niet doorkomt of dat het wel werkt maar je het in de php kant niet voor elkaar krijgt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste M-designz,

Allereerst bedankt voor uw reactie!

dit is de array die hij terug geeft:
code:
1
Array ( [q] => " Test " [number] => " 500 )


Hier ziet u waarschijnlijk ook dat er een " voor de 500 staat waardoor hij waarschijnlijk niet kan update......maar hoe los ik dit op?

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 02-10 08:45
Heb je je development console al eens geopend (network tab) om te zien wat er daadwerkelijk verstuurd wordt aan parameters?

En heb je al geprobeerd wat debug informatie naar de console weg te schrijven met console.log()?


En last but not least: Lees je in in SQL injecties. Dit PHP script is levensgevaarlijk :X

Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Er staat inderdaad een quote voor het getal, dan lijkt het erop dat er in je HTML al iets niet goed gaat? Bekijk je source eens en kijk of de HTML correct is?

En wellicht overbodig maar toch even de volgende punten
• $_GET input sanitizen
• Je query parameteriseren
• Iets aan beveiliging inbouwen zodat niet zomaar iedereen die url aan kan roepen icm met een querystring met een db-update als gevolg

Hoeder van het Noord-Meierijse dialect


Acties:
  • +1 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

En nog een puntje:
- query-parameters urlencoden

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • ewoutw
  • Registratie: Oktober 2013
  • Laatst online: 27-09 18:38
Ik zie zie zosnel je fout niet.Maar ik gok dat je het in aanhalingstekens zit.

ik heb hier onder een werkend voorbeeld.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function ajax(buttonID) {
        var getNumber = document.getElementById('number').innerHTML;
    var xhttp;
    xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("order_ajax").innerHTML = this.responseText;
            }           
    };
    xhttp.open("GET", "ajax_button_click.php?buttonid="+buttonID+"&number="+getNumber, true);
    xhttp.send();
}


php deel
PHP:
1
2
$button_id = $_REQUEST["buttonid"];
$ajax_number = $_REQUEST["number"];
Pagina: 1