La chiamata Ajax restituisce l'intera pagina anziché solo il valore dell'eco

Sto facendo una chiamata ajax a una pagina .php where sto facendo una query al database. Tuttavia, quando echo un valore dalla pagina .php, viene restituito l'integer file html anziché solo il valore numbersco di cui ho bisogno.

Questo è il mio script ajax:

<script type="text/javascript"> $(document).ready(function() { $("#valuebutton").click(function() { var id1=$('.player1').val(); $.ajax ({ type: "POST", url: "updatevaluebox.php", data: ({g1: id1}), cache: false, success: function(value) { //alert(value); $('#valuebox').val(value); } }); }); }); </script> 

E questa è la pagina php updatevaluebox.php:

 <?php require("connect_db.php"); $q="SELECT price FROM playerlist where id=".$_POST['g1']; $r=mysqli_query($dbc,$q); $price=mysqli_fetch_arrays($r,MYSQLI_NUM); mysqli_close($dbc); echo $price[0]; ?> 

Entrambi i file si trovano nella stessa directory.

Ho controllato altre risposte a questa domanda su StackOverflow ma nessuna sembra funzionare.

L'output che ottengo dall'istruzione di avviso è simile a:

 <html> <head><title> </title></head> <body> </body> </html>5.5 

Il 5,5 alla fine è l'unico valore di cui ho bisogno!

Ho impostato l'ajax dataType in text, ma anche questo non aiuta.

Sì! È necessario rimuovere qualsiasi HTML nel file connect_db.php. Raccommand di memorizzare una variabile in quel file controllando se la tua connessione è andata a buon fine. Per esempio:

connect_db.php

 $isConnected = false; $dbError = ""; if ($dbc=mysqli_connect('localhost','*****','*****','ff') { $isConnected = true; } else { $dbError = mysqli_connect_error(); } 

altri file

 require("connect_db.php"); if($isConnected) { //DO ALL YO STUFF!! } else { //HANDLE THE ERROR AS YOU LIKE, LIKE PRINTING IT OUT echo $dbError; } 

Ciò consentirà di gestire la logica DB nei file se non riesce a connettersi in modo da poter gestire con garbo le connessioni non riuscite.