2017-07-07 9 views
1

フロントエンドフォームから新しいユーザーをJsonファイルに追加しようとしています。Jsonリストにユーザーを追加する#PHP #JS

フォームから取得したコードをJs経由で渡した後、ユーザーがjsonファイルに挿入した値を(Via PHP)で渡そうとしています。 JSから

<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> 

エキスをファイルHTMLから

エキス

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

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

PHPファイル

<?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

質問/問題は何ですか? –

+2

'$ .get( "utenti.php"、{nome:newNom.value、pw:newPass.value}); '自分と他人のセキュリティのために*お願いします* GETでパスワードを送信しないでください –

+0

ハッシュタグですか? – apokryfos

答えて

1

"pindex.json" JSONファイルのフォーマットが正しくない可能性があり、json_encode関数がnullを返すことがあります。

jsonの仕組みを教えてくれなかったので、私はこの例をしました。 は、PHPのコードは次のようになり

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

users.json呼び出されます。我々は配列を取得し、そこから私たちはAJAXを経由して渡されたパラメータを持つ要素を追加することができますjson_decode関数の第二引数で

$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); 

console.log();を持っていません

0

まずPHPが何らかの理由でstdObjectを返します

$tempArray = json_decode($inp); 

このためprint_r()またはvar_dump()

次をしようとする場合があります。あなたはちょうど行うために必要があるの配列で

$tempArray = json_decode($inp,TRUE); 

を行う必要がある配列を取得するには、次の

$tempArray[] = $data; 
関連する問題