Как получить php эхо-результат в javascript - PullRequest
0 голосов
/ 19 марта 2019

У меня есть php-файл на сервере, который извлекает данные из моей базы данных.

<?php
$servername = "myHosting";
$username = "myUserName";
$password = "MyPassword";
$dbname = "myDbName";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, name, description FROM tableName;";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    $row_number = 0;
    while($row = $result->fetch_assoc()) {
        $row_number++;
        echo $_GET[$row_number. ";". $row["id"]. ";". $row["name"]. ";". $row["description"]. "<br>"];
    }
} else {
    echo "0 results";
}
$conn->close();
?>

К сожалению, я не знаю, как получить данные из php-файла, используя javascript.Я хотел бы, чтобы скрипт в javascript отображал полученные данные на консоли в браузере.

Сценарий, написанный на javascript, имеет расширение Userscript в моем браузере (tampermonkey), а файл php находится на моем сервере.Я пытался использовать AJAX, к сожалению, без положительных результатов.(скрипт php работает как положено).

JS (не работает):

    $.ajax({
        url: 'https://myserver.com/file.php', 
        type: 'POST',
        success: function(response) {
            console.log(response);
        }
    }); 

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Код внутри петли немного странный

$_GET[$row_number. ";". $row["id"]. ";". $row["name"]. ";". $row["description"]. "<br>"]

, который предлагает очень странно названный параметр строки запроса, который, я думаю, не является тем, что предполагалось.

Вместо этого, возможно, попробуйте так:

<?php

    $servername = 'myHosting';
    $username = 'myUserName';
    $password = 'MyPassword';
    $dbname = 'myDbName';
    $conn = new mysqli($servername, $username, $password, $dbname);

    if( $conn->connect_error ) {
        die( 'Connection failed: ' . $conn->connect_error );
    }

    $sql = 'select `id`, `name`, `description` from `tablename`;';
    $result = $conn->query($sql);

    if( $result->num_rows > 0 ) {

        $row_number = 0;

        while( $row = $result->fetch_assoc() ) {
            $row_number++;
            /* print out row number and recordset details using a pre-defined format */
            printf(
                '%d;%d;%s;%s<br />',
                $row_number,
                $row['id'],
                $row['name'],
                $row['description']
            );
        }
    } else {
        echo '0 results';
    }

    $conn->close();
?>

Полный пример, иллюстрирующий взаимодействие вашего ajax-кода с БД. Код php в верхней части примера предназначен для эмуляции вашего удаленного скрипта - запрос более или менее такой же, как ваш, и javascript изменяется лишь незначительно ... если вы измените SQL-запрос для своего собственного, он должен работать ...

<?php

    error_reporting( E_ALL );
    ini_set( 'display_errors', 1 );

    if( $_SERVER['REQUEST_METHOD']=='POST' ){
        ob_clean();

        /* emulate the remote script */
        $dbport =   3306;
        $dbhost =   'localhost';
        $dbuser =   'root';
        $dbpwd  =   'xxx';
        $dbname =   'xxx';

        $db = new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );      
        $sql= 'select `id`, `address` as `name`, `suburb` as `description` from `wishlist`';


        $res=$db->query( $sql );
        $row_number=0;

        while( $row=$res->fetch_assoc() ){
           $row_number++;

            /* print out row number and recordset details using a pre-defined format */
            printf(
                '%d;%d;%s;%s<br />',
                $row_number,
                $row['id'],
                $row['name'],
                $row['description']
            );
        }


        exit();
    }
?>
<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <script src='//code.jquery.com/jquery-latest.js'></script>
        <title>Basic Ajax & db interaction</title>
        <script>
            $( document ).ready( function(){
                $.ajax({
                    url: location.href, 
                    type: 'POST',
                    success: function( response ) {
                        console.log( response );
                        document.getElementById('out').innerHTML=response;
                    }
                }); 
            } );
        </script>
    </head>
    <body>
        <div id='out'></div>
    </body>
</html>
0 голосов
/ 19 марта 2019

Привет, ты можешь сделать это так:

ваш php скрипт:

if (isset($_POST["action"])) {
        $action = $_POST["action"];
        switch ($action) {
            case 'SLC':
                if (isset($_POST["id"])) {
                    $id = $_POST["id"];
                    if (is_int($id)) {
                        $query = "select * from alumni_users where userId = '$id' ";
                        $update = mysqli_query($mysqli, $query);
                        $response = array();
                        while($row = mysqli_fetch_array($update)){
                        .......
                        fill your response here

                        }
                       echo json_encode($response);
                    }
                }
                break;

        }
    }

Где action - это команда, которую вы хотите выполнить SLC, UPD, DEL и т. Д., А id - это параметр

тогда в вашем ajax:

function getdetails() {
    var value = $('#userId').val();
   return $.ajax({
        type: "POST",
        url: "getInfo.php",
        data: {id: value}
    })

}

Назовите это так:

getdetails().done(function(response){
var data=JSON.parse(response);
if (data != null) {
//fill your forms using your data
}
})

Надеюсь, это поможет

...