почему мой запрос curl не работает, что я делаю неправильно - PullRequest
0 голосов
/ 09 марта 2019

Что я делаю не так?

Я пытаюсь сделать новый запрос curl из выпадающего списка, что я делаю не так?

<form action="" method="POST">
     <div class="form-group">
        <label for="comment">Select Page:</label>
        <select class="form-control" name="pagecall" id="pagecall" style="width:75%;float:right;" onchange="davsele(this.value);">
            <?php
                $totalPage = $dataget['total'] / 20;
                for($i=1;$i<=$totalPage;$i++)
                {
                    $selc = ($getPageCount==$i)?'selected':'';
                    echo "<option value=".$i." $selc>Page No. ".$i."</option>";
                }
            ?>
        </select>
    </div>
</form>

Функция, которую я пытаюсь вызвать

<?php

    function proCall() {

    $ch = curl_init();

    $getPageCount == sval;

    curl_setopt($ch, CURLOPT_URL,"https://products-export-api.g2a.com/v1/products?page=$getPageCount");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $server_output = curl_exec($ch);

        //Gets the API data
    $response = curl_exec($curl);
    $err = curl_error($curl);
    //curl_close($curl);
    $dataget = json_decode($response,true);
    print_r($dataget);
    echo "test";
    curl_close ($ch);
    }
?>

что отправляется из выпадающего списка в функцию js

function davsele(sval)
{

var result = "<?php proCall();?>";
alert(result);
return false;
}

1 Ответ

0 голосов
/ 09 марта 2019

Вы смешиваете Javascript и PHP таким образом, что это не работает.Вы пытаетесь получить доступ к JS-переменной (sval) в PHP-функции, которая не будет работать.

Вам необходимо вызвать функцию PHP на сервере с помощью AJAX-запроса и передать JS-переменную какGET-параметр.

Для этого вы должны поместить свой PHP-код в файл (например, api.php) и вызвать его в своей JS-функции:

function davsele(sval) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      alert(this.responseText);
    }
  };
  xhttp.open("GET", "api.php?value=" + sval, true);
  xhttp.send();
}

Содержимоеapi.php может выглядеть так:

<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://products-export-api.g2a.com/v1/products?page=' . $_GET['value']);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    $server_output = curl_exec($curl);

    //Gets the API data
    $response = curl_exec($curl);
    $err = curl_error($curl);
    //curl_close($curl);
    $dataget = json_decode($response,true);
    print_r($dataget);
    echo "test";
    curl_close ($curl);
?>
...