Me preguntaba si es posible devolver un valor en una solicitud xmlhttp para hacer cosas como esta
x = get("client")
Todas las funciones funcionan de forma independiente sin problemas.
si reemplazo return JSON.parse(this.responseText) por un registro de consola de la respuesta, funciona, los archivos Php también funcionan, pero cuando hago x= get("cliente") y traté de consolar el registro xi quedó indefinido
este es mi código JS FILE primero
function get(sql_tab){ var http = new XMLHttpRequest() var url = "api/get.php?" var text = sql_tab http.open('POST', url, true); http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); http.onreadystatechange = function(){ if (this.readyState == 4 && this.status == 200){ return JSON.parse(this.responseText) } } http.send(text) }
archivo PHP
<?php function get_select($sql_tab){ $conn = mysqli_connect("localhost","root",""); mysqli_select_db($conn,"projetfinajc"); $req = "select id$sql_tab,nom$sql_tab from $sql_tab"; $resultat = mysqli_query($conn,$req); @mysqli_close($conn); return $resultat; } function print_select($resultat,$sql_tab){ while($ligne = mysqli_fetch_array($resultat)){ echo "<option value='".$ligne["id$sql_tab"]."'>".$ligne["nom$sql_tab"]."</option>"; } } if($_SERVER['REQUEST_METHOD'] == "POST"){ extract($_POST); $keys = array_keys($_POST); $retour = []; if ($keys==[]){ echo "No argument given"; }else{ $resultat = get_select($keys[0]); while($ligne = mysqli_fetch_array($resultat)){ $x = array("id".$keys[0].""=>$ligne["id".$keys[0]],"nom".$keys[0]=>$ligne["nom".$keys[0]]); array_push($retour,$x); } echo json_encode($retour); } }