jQuery в PHP, используя $ _GET

0

Как изменить параметр в файле 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>
  • 0
    Почему ты не думаешь, что это изменится? Насколько я вижу, вы ничего не делаете с возвращенными данными.
  • 0
    это страница jqueryphp.php ? Потому что, если это так, это не AJAX.
Показать ещё 6 комментариев
Теги:

2 ответа

1

Когда вы загружаете страницу в свой браузер, браузер делает HTTP-запрос на сервер, получает ответ и отображает его.

Когда вы используете Ajax, браузер делает HTTP-запрос на сервер, получает ответ и делает его доступным для JavaScript.

Он не изменяет текущую страницу автоматически. Эта страница уже получена в предыдущем ответе.

Вы должны написать JavaScript для использования данных, которые он получает в ответе (с вашим текущим подходом, это делается путем передачи функции в качестве третьего аргумента в $.get для управления DOM страницы.

1

Проблема, кажется, здесь:

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'] установлен, это не значит, что оно имеет значение.

  • 0
    thx, но это не работает, я ожидаю, что после того, как я нажму на кнопку, мой $ val также изменится, поэтому сообщение «Параметр передается 0» будет изменено на «2 часа дня»
  • 0
    Это потому, что jQuery меняет HTML, а не PHP. Так что эта страница просто не будет работать.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню