質問したい問題が2つあります。webapp は、POST (ajax) 経由で「somedata」を送信し、サーバーから返されたデータを div に配置する必要があります。jQuery、jQuery モバイル、phonegap を使用しています。したがって、HTML は次のようになります。
<div id="searchingform">
<form method="post" id="sform">
<input type="text" name="group" id="somedata" value="" placeholder="Enter SOMEDATA that will be posted to the server"/>
<div id="buttoncover">
<input type="button" id="loadbut" value="Load" data-mini="true" onClick="sendPost();">
</div>
</form>
</div>
<div id="cnt"></div>
<div id="output"></div>
そして、ここにJSコードがあります:
function sendPost() {
$.ajax({
type:'post',
url:'http://thepagethatanswers.com',
data:{'group':$('[name=somedata]').val()},
response:'html',
success:function (data) {
$('#cnt').html(data);
},
error: function(){
$('#output').html('Error');
}
});
};
したがって、ユーザーがフォームに入力してボタンを押すと、フォームがサーバーに送信され、回答が#cnt
div に入力されます。一般的には動作しますが:
1.ボタンを押した後、押したままにします。動作しますが、ボタンが押されたように見えます。jQueryはそれを作ります
<div data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="b" data-mini="true" data-disabled="false" class="ui-btn ui-shadow ui-btn-corner-all ui-mini ui-btn-up-b" aria-disabled="false">
<span class="ui-btn-inner">
<span class="ui-btn-text">Load</span>
</span>
<input type="button" id="loadbut" value="Load" data-mini="true" onclick="sendPost();return true;" class="ui-btn-hidden" data-disabled="false">
</div>
から
<input type="button" id="loadbut" value="Load" data-mini="true" onClick="sendPost();">
表示されるようにしまし.removeclass('ui-btn-active')
たが、効果がありません。ボタンを完全に書き直そうとしましたが、非アクティブのように見えましたが、押されたようには見えませんでした。外見的には正常な振る舞いを見せることができればいいだけです。
2. 情報を更新して#cnt
. そして、ここに私の2番目の問題があります.フォームの「somedata」が他の値に変更されない限り、POSTは発生しません。例: 入力に "1" を入力し、ボタンを押して、答えを取得します#cnt
。次に、情報を更新するためにボタンをもう一度押しますが、何も起こりません。入力の値を変更し、ボタンを押します -#cnt
入力の新しい値に従って を更新します。ボタンを何度も押すことができるようにする必要があり、同じ値を送信して正しい値を取得します#cnt
。サーバー コードは非常に複雑ですが、実際には を取得して$_POST['somedata']
html を返すだけです。
UPD: ajax リクエストを更新するための解決策: 送信されたデータにもう 1 つの変数を追加したところ、次のようになりました。
data:{'group':$('[name=group]').val(),tstamp: new Date().getTime()}
したがって、リクエストは毎回送信され、data
更新されます。