0

'ImageFile []'に入力された内容を確認してImageIdを検索するコードを以下に示します。次に、INSERT VALUESを使用して値を挿入します(現時点ではecho $ questionsqlを使用しています)。ただし、問題は、エコーしたときに値が空白のままになることです。また、imageFile[]の未定義のインデックス通知を受け取ります。$ insertquestion = array();

    $imagequery = "SELECT ImageId FROM Image WHERE (ImageFile = '". mysql_real_escape_string($_POST['imageFile'])."')";
    $imagers = mysql_query($imagequery);
    $imagerecord = mysql_fetch_array($imagers);
    $imageid = $imagerecord['ImageId']; 

        $insertquestion[] = "'".
                    mysql_real_escape_string( $imageid ) ."'";

 $questionsql = "INSERT INTO Question (ImageId) 
    VALUES (" . implode('), (', $insertquestion) . ")";

    echo($questionsql);

'imageFile []'の空白の値をエコーし​​、'imageFile []'が未定義であると私が信じる理由は、<form>以下にimageFile[]がないためです。imageFile []はjavascriptコード内にあり、フォームテーブルに追加されます。

だから私が知りたいのは、どのようにそれを取得して、追加されたImageFile'[]'をフォームコードに一致させる非表示の入力を取得できるかです。これにより、phpコードがある次のページにimageFile[]を投稿すると、未定義のインデックスを取得せず、'imageFile []の空白値を取得しませんか?

以下は、JavaScriptとフォームコードです。

<script>

    function insertQuestion(form) {   

    var $tbody = $('#qandatbl > tbody'); 
    var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
    var $image = $("<td class='image'></td>");

    var $imagefile = $('<input />')
        .attr({
            type: 'file',
            name: 'imageFile[]',
            class: 'imageFile'
    });

    $tr.append($qid); 
    $tr.append($image);   
    $tbody.append($tr); 

    }

</script>


<form id="QandA" action="insertQuestion.php" method="post" >

<table id="qandatbl" align="center">
<thead>
<tr>
    <th class="image">Image</th>
</tr>
</thead>
<tbody>
</tbody>
</table>

</form>
4

1 に答える 1

0

post フィールドに PHP 配列構文を使用する[]と、$_POST 配列に表示されません。構文は$_POST['imageFile'][0]、フォームで$_POST['imageFile'][1]名前を付けたすべてのフィールドに対して、、などになりimageFile[]ます。

同様に、後であなたの implode() が無効な SQL を生成するのではないかと思います。クエリを作成します:

INSERT INTO Question (ImageId)
VALUES ('value1''),(''value2''),etc...

前の行で既に値を引用符で囲み、内破の一部としてさらに引用符を追加しているため、クエリ文字列に不均衡な引用符が含まれることになります。

于 2012-04-05T03:55:20.937 に答える