Не удается обработать запрос ajax post в php

Я искал везде, но не могу найти ответ на эту проблему.

Я пишу небольшой скрипт ajax, но не могу получить правильное значение запроса POST.
Это код до сих пор:

 <textarea id="message" name="message" style="width:100%;"></textarea>
 <input value="SEND" style="border-radius: 5px 5px 5px 5px;" type = 'button' onclick = 'ajaxFunction()'/>



<script type="text/javascript">                             <!--
            //Browser Support Code
            function ajaxFunction(){
               var ajaxRequest;  // The variable that makes Ajax possible!

               try {
                  // Opera 8.0+, Firefox, Safari
                  ajaxRequest = new XMLHttpRequest();
               }catch (e) {
                  // Internet Explorer Browsers
                  try {
                     ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                  }catch (e) {
                     try{
                        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                     }catch (e){
                        // Something went wrong
                        alert("Your browser broke!");
                        return false;
                     }
                  }
               }

               // Create a function that will receive data 
               // sent from the server and will update
               // div section in the same page.

               ajaxRequest.onreadystatechange = function(){
                  if(ajaxRequest.readyState == 4){
                     var ajaxDisplay = document.getElementById('chbox');
                     ajaxDisplay.innerHTML = ajaxRequest.responseText;
                  }
               }

               // Now get the value from user and pass it to
               // server script.

               var message = document.getElementById('message').value;
               var queryString = message ;
               ajaxRequest.open("POST", 'chatdata.php', true);
               //ajaxRequest.send(null); 
               ajaxRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
               ajaxRequest.send('queryString');
            }
</script>



<?php
$message1 = $_REQUEST['message'];
echo $message;
?>

когда я используюprint_r($message);, чтобы увидеть содержимое значения POST
это то, что я получаю Array ([queryString] => ). У него нет ценностей.
Что может быть не так с моим кодом?
(Я бы использовал jQuery, но я еще не хорошо обоснован в нем.)

3 ответа

  1. Вот как вы сделали бы это в jQuery-гораздо проще:

    $('#mybutt').click(function(){
    	var txt = $('#message').val();
    	$.ajax({
    		type: 'post',
    		 url: 'my_ajax_processor_file.php',
    		data: 'ta=' + txt,
    		success: function(d){
    			if (d.length) alert(d);
    		}
    	});
    
    }); //END mybutt.click
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    
    <textarea id="message" name="message" style="width:100%;"></textarea>
    <input id="mybutt" value="SEND" style="border-radius: 5px 5px 5px 5px;" type='button' />

    my_ajax_processor_file.РНР

    <?php
        $txt = $_POST['ta'];
        $out = 'You sent: ' .$txt;
        echo $out;
    

    Вот куча бесплатных 5-мин видео tuts для jQuery

  2. Проблема в строке запроса. Вы должны поставить ajaxRequest.send(queryString)вместо ajaxRequest.send('queryString');. Не используйте строку запроса, просто используйте имя переменной. Это должно сработать!

  3. Я исправил некоторые ошибки и начал работу кода:

    1.

    <p id="chbox"></p> <!-- ajaxDisplay need this -->
    

    2.

    ajaxRequest.send("message="+queryString); //queryString is variable so without quotes
    

    3.

    var_dump($message1); //there was message without 1