2010-07-14 3 views
0
css

J'utilise le code suivant pour soumettre un formulaire.

function submitfilter(){ 
alert("in here"); 
var o = $("#opentimes").val(); 
var p = $("#price").val(); 
var d = $("#distance").val(); 
var t = $("#type").val(); 
$.post("eateries.php", { opentimes: o, price: p, distance: d, type: t }, function(data) { $("html").html(data); }); 
return false; 
} 

je suis en cours d'exécution de ce restaurants. php, de sorte que vous pouvez voir que je veux recharger la même page (comme un formulaire régulier soumet fait). tout fonctionne bien, sauf que certains de mes CSS ne fonctionne pas. spécifiquement:

body{font-family:Arial, Helvetica, sans-serif; font-size:14px; margin:0px;color:red;} 

le reste de la CSS semble fonctionner correctement. que se passe t-il ici??

edit: une autre chose que je devrais probablement mentionner est le CSS fonctionne pendant une seconde .. tandis que cette alerte ("ici") est en hausse (le texte est Arial et rouge). Cependant, après avoir cliqué sur "Ok", la police retourne au noir serif.

merci.

éditer: voici la section tête comme demandé.

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta name="viewport" content="width=device-width"/> 
<title>Eateries Gadget</title> 
<link href="styles.css" rel="stylesheet" type="text/css"> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
//alert ("you're using "+navigator.platform); 
if(navigator.platform == 'iPhone' || navigator.platform == 'iPod') 
{ 
//alert("it's an iphone!"); 
$(function(){ 
    $("body").css("font-size", "16px"); 
/* $("#footer").css("background-color", "blue"); 
    $("#footer").css("position", "static");*/ 
    $("select").css("font-size", "16px"); 
    $("input.btn").css("font-size", "14px"); 
    }); 
}; 

navigator.geolocation.getCurrentPosition(foundLocation, noLocation); 

function foundLocation(position) 
{ 
var currLat = position.coords.latitude; 
var currLng = position.coords.longitude; 
//alert('Found location: ' + lat + ', ' + lng); 
} 
function noLocation() 
{ 
alert('Could not find your location.'); 
var currLat = null; 
var currLng = null; 
} 

</script> 

<script type="text/javascript"> 


function submitfilter(){ 
alert("in here"); 
var o = $("#opentimes").val(); 
var p = $("#price").val(); 
var d = $("#distance").val(); 
var t = $("#type").val(); 
$.post("eateries.php", { opentimes: o, price: p, distance: d, type: t }, function(data) { $("html").html(data); }); 
return false; 
} 


function setstate(opentimes,price,distance,type){ 
    for(var i = 0; i < document.filters.opentimes.options.length; i++) { 
    if(document.filters.opentimes.options[i].value == opentimes){ 
    document.filters.opentimes.selectedIndex = i; 
    break; 
    } 
    } 
    for(var i = 0; i < document.filters.price.options.length; i++) { 
    if(document.filters.price.options[i].value == price){ 
    document.filters.price.selectedIndex = i; 
    break; 
    } 
    } 
    for(var i = 0; i < document.filters.distance.options.length; i++) { 
    if(document.filters.distance.options[i].value == distance){ 
    document.filters.distance.selectedIndex = i; 
    break; 
    } 
    } 
    for(var i = 0; i < document.filters.type.options.length; i++) { 
    if(document.filters.type.options[i].value == type){ 
    document.filters.type.selectedIndex = i; 
    break; 
    } 
    } 
} 
</script> 

</head> 
+0

Pouvez-vous montrer la section 'head' de eateries.php? –

+1

Cela peut être une question stupide, mais pourquoi utilisez-vous AJAX du tout ici, si vous chargez la page entière de toute façon? –

+0

J'ai posté la section tête. J'utilise ajax en raison du proxy que nous utilisons (pour une raison quelconque, l'envoi d'un formulaire ordinaire ne fonctionnera pas). – vee

Répondre

0

Vous remplacez le innerHTML de la balise <html> dans le rappel au $ .post! Si vous utilisez firebug, vous remarquerez peut-être que le body disparaît tous ensemble.

Une solution rapide serait de cibler $("body") au lieu de $("html") dans ce rappel $ .post. Sinon, faites un autre élément à remplir avec le retour de ce rappel.

+0

le changer pour "corps" a travaillé, mais je suis confus au sujet de pourquoi! c'est vrai que quand j'ai regardé le code dans firebug, l'étiquette de corps avait disparu. Cependant, quand j'ai vu la source, tout semblait correct ( était là). aussi, quand je fais $ .post ("eateries.php", {opentimes: o, prix: p, distance: d, tapez: t}, fonction (données) {console.log (données)}); Je peux voir que les données incluent le html, la tête, les étiquettes de corps et tout le reste. Comment pouvez-vous, lorsque vous définissez le corps à des données, seulement les choses appropriées vont là-dedans? J'espère que cela a du sens. – vee

+0

@vee, je pense que c'est peut-être parce que la source n'affiche pas la version mise à jour du DOM pendant que Firebug fait? Et à propos de votre deuxième question, je ne sais vraiment pas pourquoi cela se produit. Je suppose que c'est un peu génial, mais je peux me tromper. Vous pouvez toujours vérifier vous-même: http://github.com/jquery/jquery/blob/master/src/manipulation.js;) En tout cas, je suis content que nous ayons compris ce qui se passait. –

+0

ok, merci! – vee

0

En supposant que la ligne de CSS est dans style.css dans le même répertoire que ce fichier html, il n'y a aucune raison de croire que le CSS « ​​ne fonctionne pas » comme la syntaxe est tout à fait correcte. Peut-être assurez-vous que vous avez un doctype approprié directement au-dessus de la balise <html>.

Aussi, comme Nick l'a mentionné dans un commentaire à votre question, pourquoi utilisez-vous AJAX si vous souhaitez recharger la page quand même? (juste votre réponse au sujet remarqué le proxy, mais je voudrais commencer par regarder dans ce)

MISE À JOUR: Vous ne mentionnez même ce qui vous donne l'impression que le « CSS ne fonctionne pas. »


NOTE: Je vais mettre à jour ce que vous donnez plus d'informations.

+0

oui, ligne est dans style.css, qui est dans le même répertoire que eateries.php. mon doctype est: vee

+0

@ Vee, qu'est-ce qui vous donne l'impression que "CSS ne fonctionne pas?" Est-ce que ces propriétés ne sont simplement pas appliquées comme vous vous en doutez? –

+0

cela ne fonctionne pas car la police est sérif et n'est pas rouge. J'ai ajouté un commentaire supplémentaire dans le message original: une autre chose que je devrais probablement mentionner est le CSS fonctionne pendant une seconde .. tandis que cette alerte ("ici") est en hausse (le texte est Arial et rouge).Cependant, après avoir cliqué sur "Ok", la police retourne au noir serif. – vee