-1

jQuery を使用してフォームを作成する際に、いくつかの小さな問題があります。私はできる限りそれを説明しようとします。

クリックすると新しい入力が生成されるボタンがあります。私はこれを jQuery で成功裏に行い、入力に image-1、image-2 などの名前を付けました。問題は、フォームを送信すると、jQuery で追加された入力がページで認識されないことです。 「未定義の変数 "image-X"」と言って、入力値を取得します。

理由は本当にわかりません。なぜなら、以前とまったく同じ方法でこれを実行し、機能していたからです。しかし、今はそうではありません。

この問題で私を助けてくれることを願っています!

皆さんのお陰で

申し訳ありませんが、コードを追加するのを忘れていました!

これは私が持っているものです: HTML

<form method="post" action="update.php?IdMant='.$mant.'" enctype="multipart/form-data">
<input type="hidden" name="id" value="'.$id.'" />
<tr>
    <td align="right"><span id="ai">Insert Image</span></td>
</tr>
<tr>
    <td id="images">
        <label>Image:</label><input type="file" name="image-1" /> Order:<input type="text" name="order-1" size="2"/>
    <div class="clear"></div>
    </td>
</tr>
<tr>
<input type="hidden" name="numImages" value="1" id="numImages" />
    <td><input type="submit" value="Upload Image/s"></td>
</tr>
</form>

jQuery コード:

var i = 2;
var n = 2;
$(document).ready(function() {
    $("#ai").click(function() {
        $("#images").append("<label>Image:</label><input type='file' name='image-"+i+"' /> Order:<input type='text' name='order-"+i+"' size='2' /><div class='clear'></div>");
        $("#numImages").val(n);
        n++;
        i++;
    });
});

この方法はすべて問題なく動作します。これで、PhP コードは次のようになります。

for($i = 1; $i <= $_POST['numImages']; $i++) {
if(!empty($_FILES['image-'.$i]['name'])) {
    $name = $_FILES['image-'.$i]['name'];
    $type = $_FILES['image-'.$i]['type'];
    $folder = "img/";
    $folder = $folder.$name;
    if($type == "jpeg" || $type == "jpg" || $type == "gif" || $type == "png") {
        if(!move_uploaded_file($_FILES['image-'.$i]['tmp_name'], $folder)) {
            $error .= "Error ocurred with ".$name." file<br />";
        }
        else {
            insert_image_to_db($_POST['id'], $folder, $_POST['order-'.$i]);
        }
    }
    else {
        $error .= "Type of image <b>".$name."</b> incorrect.<br />";
    }
}
}
4

1 に答える 1

0

タグを追加tableして jquery で使用する必要があります。以下のように

<input type="hidden" name="id" value="'.$id.'" />
<table id="mytable">
...
<tr id="mytr">
    <td id="images">

$("#mytable #mytr #images").append(...);

編集1:

nameあなたの には以下のような属性はありませんsubmit input

<input type="submit" value="Upload Image/s" name="submit">

以下のような入力を取得する必要があります

if (isset($_POST['submit']){
...
for($i = 1; $i <= $_POST['numImages']; $i++) {
...
于 2013-05-29T13:01:47.957 に答える