Я делаю ajax-вызов на .php-страницу, где я делаю запрос к базе данных. Однако, когда я повторяю значение с .php-страницы, возвращается весь html-файл, а не только численное значение, которое мне нужно.
Это мой сценарий 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>
И это 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_array($r,MYSQLI_NUM); mysqli_close($dbc); echo $price[0]; ?>
Оба файла находятся в одном каталоге.
Я проверил другие ответы на этот вопрос в stackoverflow, но ни один из них не работает.
Результат, который я получаю от оператора предупреждения, выглядит так:
<html> <head><title> </title></head> <body> </body> </html>5.5
5.5 в конце – единственное значение, в котором я нуждаюсь!
Я установил ajax dataType в текст, но даже это не помогает.
Ага! Вам нужно удалить любой HTML-файл в файле connect_db.php. Я рекомендую хранить переменную в этом файле, проверяя, было ли ваше соединение успешным. Например:
connect_db.php
$isConnected = false; $dbError = ""; if ($dbc=mysqli_connect('localhost','*****','*****','ff') { $isConnected = true; } else { $dbError = mysqli_connect_error(); }
другие файлы
require("connect_db.php"); if($isConnected) { //DO ALL YO STUFF!! } else { //HANDLE THE ERROR AS YOU LIKE, LIKE PRINTING IT OUT echo $dbError; }
Это позволит вам обрабатывать логику БД в ваших файлах, если не удается подключиться, поэтому вы можете обработать неудачные подключения изящно.