2017-03-11 15 views
0

私はこのコードで助けが必要です。私のコードで隠しフォームの値としてデータベース配列を挿入していますか?

、私は配列として次の隠しフォームフィールドを持っている:

コード:

<form action='final.php' method = 'POST'> 
<input type="hidden" name="employeename" value="<?php echo $employeename; ?>"> 
<input type="hidden" name="ttitle" value="<?php echo $ttitle; ?>"> 
<input type="hidden" name="sourcename[]" value="<?php echo $_POST['sourcename' . $id]; ?>"> 
<input type="hidden" name="sourceaddress[]" value="<?php echo $_POST['sourceaddress' . $id]; ?>"> 
<input type="hidden" name="income[]" value="<?php echo $_POST['income' . $id]; ?>"> 
<input type="hidden" name="spousename[]" value="<?php echo $_POST['spousename' . $id]; ?>"> 
<input type="hidden" name="spouseAddress[]" value="<?php echo $_POST['spouseAddress' . $id]; ?>"> 
<input type="hidden" name="spouseIncome[]" value="<?php echo $_POST['spouseIncome' . $id]; ?>"> 
</form> 

これらの隠されたフォームフィールドがreviewe.phpと呼ばれると呼ばれる透過性のページから渡されたページにありますorder.php。

フォームのアクションが示すように、finel.phpというページからこれらのフォームフィールドの値を挿入しようとしています。

コード:

$sql = 'INSERT INTO `myDB`.`wp_myTable` (`employeeID`' 
    . ', `sourcename`, `sourceaddress`, `income`,`spousename`,`spouseAddress`,`spouseincome`)' 
    . ' VALUES (? , ? , ? , ? , ? , ? , ?)'; 

if($sth = mysqli_prepare($conn,$sql)) { 
    mysqli_stmt_bind_param($sth,'sssssss' 
     ,$last_id 
     ,$_POST["sourcename"] 
     ,$_POST["sourceaddress"] 
     ,$_POST["income"] 
     ,$_POST["spousename"] 
     ,$_POST["spouseAddress"] 
     ,$_POST["spouseIncome"] 
    ); 

このコードはexcutedされたとき、私はこのエラーが発生します。

Notice: Array to string conversion in c:\xampp\folder\final.php 

私はこのエラーは私がしようとしているフォームフィールドを隠していることを意味を知っています配列として渡すが、私はそれらを文字列として挿入しようとしている。

しかし、変数を配列として受け入れるようにコードを変更する方法はわかりません。

アドバイスはありますか?ありがとうございました。

+0

なぜ入力配列名を使用していますか? 'name =" spousename [] "'これらはすべて単一の値であるように見えます。単に 'name =" spousename "' –

答えて

1

隠し入力の値は、配列の最初のインデックスを取得するだけで取得できます。

if($sth = mysqli_prepare($conn,$sql)) { 
    mysqli_stmt_bind_param($sth,'sssssss' 
     ,$last_id 
     ,$_POST["sourcename"][0] 
     ,$_POST["sourceaddress"][0] 
     ,$_POST["income"][0] 
     ,$_POST["spousename"][0] 
     ,$_POST["spouseAddress"][0] 
     ,$_POST["spouseIncome"][0] 
    ); 
0

あなたはこのような何か実行して文字列として配列を書き込むためにimplode機能を使用することができます。

破(「」、$配列);その後、

と、このような配列に戻ってそれを読むためにexplode機能を使用します。

は(「」、$配列)を爆発。

関連する問題