0 レビュー
1 回答
php-javascriptの$(Id).submit()
次のコードに問題があります。 これがJavaScriptです
$(document).ready(function(){
$("#VisualiserCarte").submit(function(){
$.post("store.php",{longitudes:longitudes,latitudes:latitudes});
alert('ok');
var mapOptions = {
zoom: 13,
// Center the map on Chicago, USA.
center: new google.maps.LatLng(tableauPoints[0].lat(),tableauPoints[0].lng())
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var flightPath = new google.maps.Polyline({
path: tableauPoints,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
});
});
これがPHPです
<script src="google_map.js"></script>
<?php
$DisplayForm= True;
if (isset($_POST['vue'])){
$DisplayForm= False;
}
if ($DisplayForm){
?>
<form method="post" id="VisualiserCarte">
<input type="submit" name="vue" value="visualiser la carte" >
</form>
<form action="store.php" method="post" id="SoumettreCarte" >
<input type="submit" name="submit" value="soumettre la carte" >
</form>
<?php
}
else
{
?>
<form method="post" id="RéinitialiserCarte" >
<input type="submit" value="réinitialiser" value="réinitialiser la carte" >
</form>
<?php
}
?>
フォーム「VisualiserCarte」の送信をクリックすると、OKを警告し、ポリラインを使用してマップを描画し、マップの下にフォームRéinitialiserCarteを取得することを期待しています。実行するとアラートは表示されますが、マップは表示されません 。 追加した場合はfalseを返します。送信機能の最後に、アラートと正しいマップが表示されますが、最初の2つのフォームはまだここにあり、3番目のフォームしかないと予想していました。 何か助けはありますか? Tahnks
わからない
0
レビュー
答え :
解決策:
AJAX呼び出しが終了したときに実行される成功のcalback(またはPromiseインターフェース)が欠落しているようです。 遅延オブジェクトを使用する近似コードは、次のようになります。
$(document).ready(function(){
// Send data to server and store it
$("#SoumettreCarte").submit(function(ev) {
ev.preventDefault(); // Prevent submit; Let AJAX call deal with submit
$.post("store.php", {longitudes: longitudes,latitudes: latitudes})
.done(function (response) {
alert('Soumettre Carte - ok');
});
});
$("#VisualiserCarte").submit(function(ev){
ev.preventDefault(); // Prevent submit
// Hide forms
$('#VisualiserCarte').hide();
$('#SoumettreCarte').hide();
// Display last form
$('#ReinitialiserCarte').show();
var mapOptions = {
zoom: 13,
// Center the map on Chicago, USA.
center: new google.maps.LatLng(tableauPoints[0].lat(),tableauPoints[0].lng())
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var flightPath = new google.maps.Polyline({
path: tableauPoints,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
});
$('#ReinitialiserCarte').submit(function(ev) {
ev.preventDefault(); // Prevent submit
$('#VisualiserCarte').show();
$('#SoumettreCarte').show();
$('#ReinitialiserCarte').hide();
});
});
PHPコードも記述できます:
<form method="post" id="VisualiserCarte">
<input type="submit" name="vue" value="visualiser la carte" >
</form>
<form action="store.php" method="post" id="SoumettreCarte" >
<input type="submit" name="submit" value="soumettre la carte" >
</form>
<div id="map-canvas"></div>
<form method="post" id="ReinitialiserCarte" style="display: none;">
<input type="submit" value="réinitialiser" value="réinitialiser la carte" >
</form>
ご覧のとおり、jQueryコードは、サーバー呼び出しとさまざまな要素の表示を処理します。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。