Вчера мне удалось получить свои данные из базы данных, выводящей и сохраняющей в массиве java. Однако это было загружено, теперь этот код не будет работать по щелчку. Итак, я прочитал об ajax и у меня есть эта функция:

  var infArray = new Array();
  var country;
    $('#australia').click(function() {
        //console.log("you clicked"+txt);
        country = 'Australia';
        $.ajax({
            type: 'POST',
            url: 'php/Maps.php',
            data: {country: country},
            success: function(data){
            alert("success"+data); // this will hold your $result value
            infArray = JSON.parse(data)
            console.log( 'Return:' + data );
            }           
        });
    });

Насколько я понимаю, это открывает файл php, содержащий функцию, и позволяет использовать переменную «страна» с помощью $ _POST.

Итак, мой файл php выглядит так:

<?php
require '../classes/Mysql.php';

function get_Stockist(){ // if su = 0 then stockist if = 1 then member
    $mysql = new Mysql();
    $result = $mysql->getInfo($_POST['country']);
    echo json_encode($result);
}

Так что снова, на мой взгляд, $ result устанавливается равным результату метода: в Mysql.php:

function getinfo($country){

    $rows = array();
    $query = "SELECT Name,add1 FROM stockistsWorld WHERE Country = '". mysql_escape_string($country) ."' LIMIT 5";
    //$query = "SELECT Name,add1 FROM stockistsUK LIMIT 10";
    $result = mysqli_query($this->conn, $query);
    /* numeric array */

    while($row = mysqli_fetch_array($result, MYSQLI_NUM)){

         $rows[] = $row;

        }
    return $rows;
}

Однако результат в моем html равен нулю

0
user2572475 3 Авг 2013 в 17:48

1 ответ

Лучший ответ

Вы никогда не вызываете свою функцию get_Stockist() в своем файле PHP, который вызывается AJAX.
Добавьте get_Stockist() в ваш PHP-файл, чтобы вызвать вашу функцию.

А другая ваша функция - getinfo без заглавной буквы i.
Так что это будет $mysql->getinfo($_POST['country']); вместо $mysql->getInfo($_POST['country']);

1
putvande 3 Авг 2013 в 18:04
Я изменил его на заглавную i и просто удалил метод, так что теперь Maps.php выглядит как <?php require '../classes/Mysql.php'; require_once('../FirePHPCore/fb.php'); ob_start(); fb('1', FirePHP::TRACE); $mysql = new Mysql(); fb('2', FirePHP::TRACE); $result = $mysql->getInfo($_POST['country']); fb('3', FirePHP::TRACE); $res = 1; fb('4', FirePHP::TRACE); echo json_encode($result); fb('5', FirePHP::TRACE); ТАКЖЕ УСТАНОВЛЕН FIREPHP ТАК ХОРОШО !. Я надеюсь, что это нормально
 – 
user2572475
3 Авг 2013 в 18:10