Получить данные из базы данных и PHP с помощью Ajax - PullRequest
0 голосов
/ 12 июня 2019

Я хочу отправить данные из текстового ввода и установить результат (из базы данных) в другие входы, используя Ajax

Я попытался проанализировать результат в json с помощью json_encode (), по какой-то причине он не работал, и в качестве решения я создал div на странице php результата, с помощью которого я получил div с содержимым

index.php

    <div class="form-group col-4">
        <label for=""> Code:<span style="color:red;">*</span></label>
        <input type="text" class="form-control form-control-sm" id="codecli" name="codecli" onkeyup="showinfoclient()" required>
    </div>

    <div class="form-group col-8 " id="mess">
    </div>
</div>

<div class="minfoclient">
    <div class="form-row">
        <div class="form-group col-6">
            <label for=""> Lastname:<span style="color:red;">*</span></label>
            <input type="text" class="form-control form-control-sm" id="lastname" name="lastname" value="" required>
        </div>

        <div class="form-group col-6">
            <label for=""> Firstname:<span style="color:red;">*</span></label>
            <input type="text" class="form-control form-control-sm" id="firstname" name="firstname" value="" required>
        </div>
    </div>

client.php if ($ _REQUEST ['idcli']) {

  $idcli = strip_tags($_POST['idcli']);
  $iduser = $_SESSION['user_id'];
  $clients = $conn->query("SELECT * FROM `client` WHERE 
`Current_user`=$iduser AND `id_client`='$idcli'");

while($client = $clients->fetch_assoc()){
?>
    <div class="minfoclient">

        <div class="form-row">
            <div class="form-group col-6">
                <label for=""> Lastname:<span style="color:red;">*</span></label>
                <input type="text" id="nom" class="form-control form-control-sm namm"  name="lastname" value="<?=$client['lastname'];?>">
            </div>

        <div class="form-group col-6">
            <label for=""> Firstname:<span style="color:red;">*</span></label>
            <input type="text"  id="prenom" class="form-control form-control-sm" name="firstname" value="<?=$client['firstname'];?>">
        </div>

    </div> ...

этот код работал, но не так, как ожидалось, потому что он блокирует другие задачи

function showeinfoclient(){
  var iDClient = $('#codecli').val();
  if (iDClient) {
    $.ajax({
      type:'POST',
      url:'client.php',
      data:'idcli='+iDClient,
      success:function(data){
        $('.minfoclient').html(data);
      }
    });
  }
}

в качестве решения, я надеюсь, что вы предоставите простой код (AJAX, JSON и PHP)

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

In client.php

$response=array();

while($client = $clients->fetch_assoc()){
$response[]=$client;
}
echo json_encode($response);

После этого внутри ajax-ответа вы должны сделать цикл for для каждого клиента info создать элементы ввода.

ajax response: -

success:function(data){
     var clients=$.parsJSON(data);
var htmlData="";
     if(client.length>0){

       for(i=0;i<client.length;i++){
             htmlData += "<input type='text' name='firstname' value='"+client[i].firstname+"'><br>";
             htmlData += "<input type='text' name='lastname' value='"+client[i].lastname+"'><br>";
       }
        $('.minfoclient').html(htmldata);
      }
}
0 голосов
/ 12 июня 2019

пожалуйста, обновите код JS и код PHP.

JS код:

function showinfoclient(){
  var iDClient = $('#codecli').val();

    if (iDClient) {
        $.ajax({
        type:'POST',
        url:'client.php',
        data:JSON.stringify(iDClient),
        dataType:'json', 

        })
        .done(function( json ) { 

            $('#lastname').val(json.lastname);
            $('#firstname').val(json.firstname);

        })
        .fail(function( xhr, status, errorThrown ) {

          alert( "Sorry, there was a problem!" );
          console.log( "Error: " + errorThrown );
          console.log( "Status: " + status );
          console.dir( xhr );
        });

    }
}

PHP-код (client.php):

$input = urldecode(file_get_contents('php://input'));
$iDClient = json_decode($input,true);

// code to fetch firstname and lastname from database
$client = array('firstname' => 'John', 'lastname' => 'Doe'); // raw data


echo json_encode($client);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...