Передача JSON массива в Ajax

382
17 октября 2017, 04:01

Доброе утро. Просидел часа 2-3, в интернете куча примеров, но у меня не выходит. Вот код с Ajax.

<html>
<head>
<link rel="stylesheet" href="css/myStyles.css">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/bootstrap-theme.min.css">
    <script src="js/bootstrap.min.js"></script>
    <script src="js/jquery-3.0.0.min.js"></script>
    <?php
    include "header.html";
    include "left_menu.php";
    ?>
</head>
<body>
<div align="center">
    <form id="form" action="" method="post">
         <input type="text" name="model"><br>
        <input id="submit" type="button" name="submit" value="submit">
    </form>
</div>
<div id="result"></div>
    <script language="JavaScript">
var input = document.getElementsByName("model");
input=input[0].value;
            // click on button submit
            $("#submit").on('click', function(){
                // send ajax
                $.ajax({
                    type : "POST", // type of action POST || GET
                    dataType : 'json', // data type
                    url: 'php/search_script.php', // url where to submit the request
                    data : {model:input}, // post data || get data
                    success : function() {
                        var name = <?php echo $json?>
                        console.log(name);
                    },
                    error: function(xhr, resp, text) {
                        console.log(xhr, resp, text);
                    }
                })
            });
    </script>
</body>
<?php
include "footer.php";
?>
</html>

Код PHP

<?php
$data=array();
header('Content-type: application/json');
$connect = pg_connect("host=localhost port=5432 dbname=weapon user=arakul password=1111") or die("dsfsdfg");
pg_set_client_encoding($connect,UTF-8);
$post = $_POST['model'];
$query = sprintf("SELECT description from model where title = 'M4'");
$result = pg_query($connect, $query) or die(pg_last_error($result));
while($row=pg_fetch_assoc($result)) {
    $data[] = array($row["name"]);
}
$json=json_encode($data)
echo $json;

Это лишь один из вариантов. Пробовал вариантов 5-6 и ни один не выходит. На данный момент выдаёт ошибку:

Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…} "parsererror" SyntaxError: Unexpected token < in JSON at position 0
    at parse (<anonymous>)
    at Nb (jquery-3.0.0.min.js:4)
    at A (jquery-3.0.0.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery-3.0.0.min.js:4)

Помогите решить проблему. Пробовал уже не отправлять ничего через ajax, пробовал разные варианты JSON.parse и тд.То возвращается null, то вот такая ошибка.

Answer 1
                success : function() {
                    var name = <?php echo $json?>
                    console.log(name);
                },

замените на

                success : function(name) {
                    console.log(name);
                },
READ ALSO
Как отключить лимит скрипта?

Как отключить лимит скрипта?

В php скрипте где каждый желающий может оставить запись, возможность это сделать только один раз в день, как убрать это ограничение?

402
Перемещение строк

Перемещение строк

Добрый день,пожалуйста помогите реализовать функцию на PHP, которая будет менять местами строки в бд mysql

281
Проблемы с json_decode

Проблемы с json_decode

Имеется следующий json объект:

379