2015-08-02 19 views
0

Я использую AJAX и PHP для обработки формы, и я пробовал в течение 3 часов, и я не могу понять, почему он не вставляет данные в сервер mysql.Форма AJAX не работает с php

Подключение к серверу работает. Форма PHP и html работает, когда я совмещаю ее с одной страницей. Это сигнализирует мне, что его AJAX, но AJAX кажется прекрасным. Я действительно не знаю, что здесь происходит. Пожалуйста, помогите мне.

РНР обрабатывать код:

<?php 
require_once 'config/config.php'; 
function test_input($data){ 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

$que1 = $_POST['que1']; 

$sql = "INSERT INTO question_answers 
(
    user_id, que1, que2 
) 
VALUES 
(
    '99' ,'$que1', '3345' 
)"; 
$conn->close(); 
?> 

И Аякса здесь:

$(document).ready(function() { 
    $("#submit1").click(function() { 
     var que1 = $('#que1').val(); 
     if (que1 == '') 
     { 
      alert("Please provide a response."); 
     } 
     else { 
      $.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: { 
        que1: que1 
       }, 
       success: function(msg) { 
        alert($que1); 
        var url = "process.php"; 
        $(location).attr('href', url); 
       }, 
       error: function() { 
        alert('Error'); 
       } 
      }); 
     } 
    }); 
}); 

Моя форма стандартно:

<form action="" method="POST"> 
    Question 
    <textarea class="form-control" name="que1" rows="3" id="que1"></textarea> 
    <button type="submit" class="btn btn-primary" id="submit1" name="submit1">Submit response</button> 
</form> 
+5

Пожалуйста, добавьте конкретное заявление о проблеме - «это не работает», можно предположить, но * как это не работает? Какое сообщение об ошибке или неправильное поведение характерны? –

+1

Что делать, если вы попытались на самом деле ** сделать ** запрос, который вы задаете в '$ sql'? – D4V1D

+0

Извините, что вы имеете в виду «делать»? Я думал, что AJAX выполнит его? – user3504462

ответ

0

Наука ваша проблема не ясна я еще, но все же я получил некоторые ошибки в вашем коде. В файле PHP:

<?php 
    require_once 'config/config.php'; 
    function test_input($data){ 
     $data = trim($data); 
     $data = stripslashes($data); 
     $data = htmlspecialchars($data); 
     return $data; 
    } 

    $que1 = $_POST['que1']; 

    $sql = "INSERT INTO question_answers 
    (
     user_id, que1, que2 
    ) 
    VALUES 
    (
     '99' ,'$que1', '3345' 
    )"; 

    /* 
    You did not run the query here. 
    Execute the query here and try 
    to echo something as ajax response. 
    */ 
    if (mysql_query($sql))//or mysqli or PDO whatever you use in your connection. 
    { 
     echo 'success'; 
    } 
    else 
    { 
     echo 'Error'; 
    } 
    $conn->close(); 
    ?> 

И в коде Ajax:

$(document).ready(function() { 
    $("#submit1").click(function() { 
     var que1 = $('#que1').val(); 
     if (que1 == '') 
     { 
      alert("Please provide a response."); 
     } 
     else { 
      $.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: { 
        que1: que1 
       }, 
       success: function(msg) { 
        //alert($que1); 
        //var url = "process.php"; 
        //$(location).attr('href', url); 
        alert(msg); 
       }, 
       error: function() { 
        alert('Error'); 
       } 
      }); 
     } 
    }); 
}); 

Проверьте, если предупреждение показывает соответствующее сообщение или нет.

+0

Извините, что вы имеете в виду «сделать»? Я думал, что AJAX выполнит его? – user3504462

+0

** Danger **: вы используете [** устаревший ** API баз данных] (http://stackoverflow.com/q/12859942/19068) и должны использовать [современную замену] (http: // php. нетто/ручной/EN/mysqlinfo.api.choosing.php). Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/ наилучшим образом-чтобы-предотвратить-sql-injection-in-php). – Quentin

+0

@ user3504462 Ajax ничего не сделает сам по себе. Ajax просто отправляет ваш запрос асинхронно. Вы должны выполнить свой запрос самостоятельно. – Chayan

Смежные вопросы