2017-07-07 3 views
1

Wir versuchen, einen neuen Benutzer zu einer JSON-Datei von einem Frontend-Formular hinzuzufügen.Benutzer zu einer Json-Liste hinzufügen #PHP #JS

Wir übergeben den Code aus dem Formular über Js, danach versuchen wir (Via PHP), den vom Benutzer in einer json-Datei eingefügten Wert zu übergeben.

Auszug aus HTML

<div class="log"> 
        <p>Username Nuovo Utente</p> 
        <input class="nome" id="nuovoUtente" placeholder="inserisci il nome"><br> 
        <p>Password Password Nuovo Utente</p> 
        <input type="password" id="nuovaPsw" class="psw"> <br> 
        <button type="submit" class="lo" id="aggiunto">Aggiungi Nuovo Utente</button> 
       </div> 

Auszug aus den js

Datei
let newNom = document.getElementById('nuovoUtente'); 
    let newPass = document.getElementById('nuovaPsw'); 

    aggiunto.onclick=function(){ 
     $.get("utenti.php", { nome: newNom.value , pw: newPass.value }); 
    } 

Php Datei

<?php 
    $data[] = $_GET['data']; 
    console.log($data[]); 
    $inp = file_get_contents('pindex.json'); 
    $tempArray = json_decode($inp); 
    array_push($tempArray, $data); 
    $jsonData = json_encode($tempArray); 
    file_put_contents('pindex.json', $jsonData); 
    ?> 
+1

Was ist die Frage/Problem? –

+2

'$ .get ("utenti.php", {nome: newNom.value, pw: newPass.value}); 'Für die Sicherheit Ihrer eigenen und anderer Leute bitte * NICHT * Passwörter über GET senden –

+0

Sind diese Hashtags? – apokryfos

Antwort

1

Möglicherweise ist Ihre JSON-Datei "pindex.json" falsch formatiert und die Funktion json_encode gibt null zurück.

Da Sie mir nicht gesagt haben, wie Json ist, habe ich dieses Beispiel gemacht. Genannt users.json

{ 
    "users" : [ 
    {"nome" : "GeekSilva", "pw" : "123"} 
    ] 
} 

Der PHP-Code würde wie folgt aussehen.

$nome = $_GET['nome']; 
$pw = $_GET['pw']; 

$data = ['nome' => $nome, 'pw' => $pw]; 

$inp = file_get_contents('users.json'); 

//Passing the second parameter to true will be returned as an array 
$tempArray = json_decode($inp, true); 

// push to $tempArray 
$tempArray['users'][] = $data; 


$jsonData = json_encode($tempArray); 
file_put_contents('users.json', $jsonData); 

Mit dem zweiten Parameter der json_decode Funktion erhalten wir ein Array und von dort aus können wir ein Element mit den Parametern über AJAX weitergegeben hinzufügen.

0

erste PHP nicht console.log(); haben könnte print_r() oder var_dump()

Next für die

$tempArray = json_decode($inp); 

dieser wird wieder ein stdObject aus irgendeinem Grund versuchen. Um ein Array erhalten Sie benötigen

$tempArray = json_decode($inp,TRUE); 

mit einem Array tun sollten Sie nur tun müssen:

$tempArray[] = $data; 
Verwandte Themen