<html> <head> </head> <body> <input type="text" id="inputtext"><input type="button" value="submit "id="submit"> <br> <div id="response"> </div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript" src="thescript.js"></script> </body> </html>
$(document).ready(function(){ $("#submit").click(function(){ var dataString = $("#inputtext").val(); $.ajax({ type: "POST", url: "greet.php", data: dataString, success: function(){ $("#response").load("greet.php"); } }); }); });
<?PHP print "hello " . $_POST['dataString']; ?>
Значение, введенное в текстовое поле, должно отображаться при загрузке greet.php. не уверен, почему это не сработает
Я думаю, это может быть проще:
$("#submit").click(function() { var dataString = $("#inputtext").val(); $.ajax({ type: "POST", url: "greet.php", data: "dataString=" + dataString, success: function(result){ $("#response").html(result); } }); });
И для php:
<?PHP if(isset($_POST["dataString"])) { echo "hello " . $_POST['dataString']; } ?>
Я не думаю, что у вас есть .ajax
jQuery .ajax
. Из документации jQuery:
Данные, которые необходимо отправить на сервер. Он преобразуется в строку запроса, если не является уже строкой. Он добавляется к URL-адресу для запросов GET. См. Параметр processData для предотвращения этой автоматической обработки. Объектом должны быть пары «ключ / значение». Если значением является массив, jQuery сериализует несколько значений с одним и тем же ключом на основе значения традиционной настройки (описано ниже).
Вы хотите передавать параметры как свои данные в формате key / value, а не только данные. Таким образом, вы можете получить к нему доступ в php, поскольку «dataString» – это передача data: "dataString=" + dataString
.
$ .ajax уже возвращает «привет». однако, пока ваша страница получает его, он снова запрашивает «greet.php».
$.ajax({ type: "POST", url: "greet.php", data: dataString, success: function (response) { $("#response").append(response); // or .html(response) } });
или лучше: используйте .post ();
$.post("greet.php", dataString, function (response) { $("#response").append(response); // or .html(response) });
наконец, ваша кнопка отправки находится в форме, и вы обрабатываете событие click, вы shouldd препятствуете отправке формы на клик, если вы хотите остаться на странице и не перезагружать ее.
$("#submit").click(function(event) { event.preventDefault(); // stuff return false; });
$(document).ready(function(){ $("#submit").click(function(){ var dataString = $("#inputtext").val(); $("#response").load("greet.php"+ dataString ); }); });
Попробуй это;
$("#response").load("greet.php", {dataString : dataString});