2

これを何時間も調査した後、私は最終的に自分で質問を投稿することにしました. 私は ajax と jquery にかなり慣れていないことを覚えておいてください。ただし、現在のプロジェクトの締め切りが迫っているため、すべてを確認する時間がありません。

次のhtmlフォームがあります。

<div class="form">
    <form id="savePlacemarkForm" method="post" action="createPlacemark.php">
        <div>
            <input type="text" id="placemarkName" name="placemarkName" placeholder="Name:"/>
        </div>
        <div>
            <input type="text" id="placemarkAddress" name="placemarkAddress" placeholder="Adress:"/>
        </div>
        <div>
            <input type="text" id="placemarkTag" name="placemarkTag" placeholder="Tags:"/>
        </div>
        <div>
            <textarea id="placemarkDescription" name="placemarkDescription" placeholder="Description" rows="1" cols="1"></textarea>
        </div>
        <div>
            <input id="latitude" type="text" name="latitude"/>
        </div>
        <div>
            <input id="longtitude" type="text" name="longtitude"/>
        </div>
        <button class="md-close" id="savePlacemark" onclick="createPlacemark();"/>Save</button>
    </form>
    <button class="md-close">Cancel</button>
    <script src="my_script.js" type="text/javascript"></script>
</div>

ご覧のとおり、アクションを createPlacemark.php に設定しています。これは、これらのフィールドから入力を受け取り、DB に保存します。これは正常に動作します!! ただし、これはページをリダイレクトまたは再送信しなくても機能するはずなので、つまり ajax! 次のような my_script.js を含めます。

$("#savePlacemark").click( function() {
    $.post( $("#savePlacemarkForm").attr("action"), 
        $("#savePlacemarkForm :input").serializeArray();                     
    });
    clearInput();
});

$("#savePlacemarkForm").submit( function() {
    return false;   
});

function clearInput() {
    $("#savePlacemarkForm :input").each( function() {
        $(this).val('');
    });
}   

ご覧のとおり、それは機能しますが、何らかの理由で false を返します。前述のphpファイルに継続的にリダイレクトされるため、うまくいかないようです。

どんな助けでも大歓迎です!どうも!

4

2 に答える 2

0

以下を試してください。.submit()関数は実際にフォームの送信をトリガーします。で値を既に投稿している場合は必要ないため、スクリプトからこれを取り出します$.post

$("#savePlacemark").click( function() {
 $.post( $("#savePlacemarkForm").attr("action"), 
         $("#savePlacemarkForm :input").serializeArray();                    
  });
  clearInput();
});

function clearInput() {
    $("#savePlacemarkForm :input").each( function() {
       $(this).val('');
    });
}   
于 2013-10-30T11:37:05.117 に答える
-1

これを試して

<button onclick="return createPlacemark();">Save</button>

それはあなたを助けるかもしれません。

于 2014-06-18T13:05:30.733 に答える