PHP не видит форму

319
10 апреля 2018, 04:24

Подключение к базе подключается 101%, поскольку текст echo "<a href='index.php'> back <a/>"; мне "приходит" на стр. Но в PHP форма не "приходит".

fn    = document.getElementById('fn').value;
ln    = document.getElementById('ln').value;

AJAX видит их пустыми, хотя поля заполнены. Ошибок не выбивает.

Возможно я догадываюсь в чем проблема, форма приходит в PHP -> идет проверка ->
if ( $name == '' && $last_name == '' ) { /***/ } видит их пустые, и конец.

Вся проблема в VALUE для AJAX они пустые, почему?

Помогите, спасибо!

  <form action="" method="post" id="reg">
       <input type="text"   name="First"  id="fn"  value="">
       <input type="text"   name="Last"   id="ln"  value="">
       <input type="submit" name="post_user" onclick="add_ajax_rquest()" value="Add" >
    </form>
    <p>Suggestions: <span id="txtHint"></span></p>
<?php 
require_once('connect.php');
echo "<a href='index.php'> back <a/>";
//add to db users
if(isset($_POST['post_user'])){
    $name      = $_POST['First'];
    $last_name = $_POST['Last'];    
    echo $name;
    echo $last_name;
    if ( $name == '' && $last_name == '' ) {
            echo "Fields name is not filing!";
    } else {
        $get_id_user   = 'SELECT MAX(id) FROM users';
        $result_id_user = mysqli_query( $con, $get_id_user );
        $users_id       = mysqli_fetch_array( $result_id_user );
        $queryInsertName   = 
               "INSERT INTO 
                    users ( `user_first_name`, 
                            `user_last_name` ) 
                VALUES ( '$name', '$last_name' )";
        $resultName  = mysqli_query($con, $queryInsertName);
    }
}
?>
function add_ajax_rquest() {
  var  fn    = document.getElementById('fn').value;
  var  ln    = document.getElementById('ln').value;
  var  phone = document.getElementById('phone').value;
  var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
  request.open("POST", 'regist.php', true);
  request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  request.send(fn, ln, phone); 
  request.onreadystatechange = function() {
    if (request.readyState == 4 && this.status == 200) {
      document.getElementById('txtHint').innerHTML = request.responseText;
    }
  }
}
Answer 1

ajax_POST_UTF8.js

function createXMLHttp() { 
        if (typeof XMLHttpRequest != "undefined") { // для браузеров аля Mozilla 
            return new XMLHttpRequest(); 
        } else if (window.ActiveXObject) { // для Internet Explorer (all versions)  
            var aVersions = [ 
                "MSXML2.XMLHttp.5.0", 
                "MSXML2.XMLHttp.4.0", 
                "MSXML2.XMLHttp.3.0", 
                "MSXML2.XMLHttp", 
                "Microsoft.XMLHttp" 
            ]; 
            for (var i = 0; i < aVersions.length; i++) { 
                try { 
                    var oXmlHttp = new ActiveXObject(aVersions[i]); 
                    return oXmlHttp; 
                } catch (oError) {} 
            } 
            throw new Error("Невозможно создать объект XMLHttp."); 
        } 
    } 
// фукнция Автоматической упаковки формы любой сложности 
function getRequestBody(oForm) { 
    var aParams = new Array(); 
    for (var i = 0; i < oForm.elements.length; i++) { 
        var sParam = encodeURIComponent(oForm.elements[i].name); 
        sParam += "="; 
        sParam += encodeURIComponent(oForm.elements[i].value); 
        aParams.push(sParam); 
    } 
    return aParams.join("&"); 
} 
// функция Ajax POST 
function postAjax(url, oForm, callback) {  
    // создаем Объект 
    var oXmlHttp = createXMLHttp(); 
    // получение данных с формы 
    var sBody = getRequestBody(oForm); 
    // подготовка, объявление заголовков 
    oXmlHttp.open("POST", url, true); 
    oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    // описание функции, которая будет вызвана, когда придет ответ от сервера 
    oXmlHttp.onreadystatechange = function() { 
        if (oXmlHttp.readyState == 4) { 
            if (oXmlHttp.status == 200) { 
                callback(oXmlHttp.responseText); 
            } else { 
                callback('error' + oXmlHttp.statusText); 
            } 
        } 
    }; 
    // отправка запроса, sBody - строка данных с формы 
    oXmlHttp.send(sBody); 
}

form_post.html

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 
<body> 
    <script LANGUAGE='JavaScript' src='ajax_POST_UTF8.js'></script> 
    <script> 
        function showResult(d) { 
            document.getElementById('displayText').innerHTML = d; 
        } 
  
        function do_post_ajax() { 
            postAjax('pro_post.php', document.forms[0], showResult); 
        } 
    </script> 
    <form> 
        Проверка POST 
        <br>напишите яблоко<br> 
        <input type=text name=ge1> 
        <br>напишите огурец<br> 
        <input type=text name=ge2><br> 
    </form> 
    <a href="JavaScript:do_post_ajax()">проверить POST</a> 
        <div id="displayText"></div> 
</body> 
</html>

pro_post.php

<?php 
header("Content-Type: text/html;charset=utf-8"); 
if (!empty($_POST["ge1"])) { 
    print '<b>' . $_POST["ge1"] . '</b> пришло<br>'; 
} else { 
    echo 'нет значения'; 
} 
if (!empty($_POST["ge2"])) { 
    print '<b>' . $_POST["ge2"] . '</b> пришло<br>'; 
} else { 
    echo 'нет значения'; 
}

READ ALSO
Opencart перевод установленного шаблона

Opencart перевод установленного шаблона

Натянул шаблон на версию opencart 23

211
Подключение dataLayer.push в скрипте php

Подключение dataLayer.push в скрипте php

На сайте имеется форма отправки заявки на почту администратораОбработка формы и отправка сообщения на почту написаны на php

239
массив в обратном порядке через for

массив в обратном порядке через for

есть массив, $array = array(текст, текст1, текст2); количество записей в массиве может быть любым, тоесть неизвестно каким оно будетможет быть и 10 и 20 записей

181
Почему в $_POST[name&#39;&#39;] значение NULL?

Почему в $_POST[name''] значение NULL?

В чем проблема? Я не правильно передаю? Как правильно передать? var_dump($name);

251