Как изменить параметр в файле PHP с помощью jQuery? Вот мой код, я не понимаю, почему, когда я нажимаю кнопку, значение для $val
не меняется:
<!DOCTYPE html>
<html>
<head>
<script src="js/jquery-1.10.2.min.js">
</script>
</head>
<body>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#test").hide();
$.get( "jqueryphp.php", { name: "John", time: "2pm" } );
});
});
</script>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p id="test">This is another paragraph.</p>
<button>Click me</button>
<?php
if(isset($_GET['time'])) $val=$_GET['time'];
else $val='parametru ne transmis 0';
echo "<br>".$val."</br>"
?>
</body>
</html>
Когда вы загружаете страницу в свой браузер, браузер делает HTTP-запрос на сервер, получает ответ и отображает его.
Когда вы используете Ajax, браузер делает HTTP-запрос на сервер, получает ответ и делает его доступным для JavaScript.
Он не изменяет текущую страницу автоматически. Эта страница уже получена в предыдущем ответе.
Вы должны написать JavaScript для использования данных, которые он получает в ответе (с вашим текущим подходом, это делается путем передачи функции в качестве третьего аргумента в $.get
для управления DOM страницы.
Проблема, кажется, здесь:
if(isset($_GET['time'])) $val0=$_GET['time'];
else $val='parametru ne transmis 0';
echo "<br>".$val."</br>"
Что такое $val0
против $val
? Не должно ли это всего лишь $val
? Кроме того, последнее echo
не имеет смысла. Нет ;
в конце строки. И что это такое "<br>".$val."</br>"
<br/>
- просто разрыв строки. Не элемент, который вам нужно открыть и закрыть. Вы хотите, чтобы у него был разрыв строки до и после? Я так полагаю. Вот моя очистка от этого. Должно сработать:
if (array_key_exists('time', $_GET) && !empty(trim($_GET['time']))) {
$val = $_GET['time'];
}
else {
$val = 'parametru ne transmis 0';
}
echo '<br />' . $val . '<br />';
Я также изменил if(isset($_GET['time']))
на что-то более надежное. Потому что даже если $_GET['time']
установлен, это не значит, что оно имеет значение.
jqueryphp.php
? Потому что, если это так, это не AJAX.