jquery-ajax: передать значения из текстового поля в файл php и показать значение

index.html

<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> 

thescript.js

 $(document).ready(function(){ $("#submit").click(function(){ var dataString = $("#inputtext").val(); $.ajax({ type: "POST", url: "greet.php", data: dataString, success: function(){ $("#response").load("greet.php"); } }); }); }); 

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});