JavaScript Invite À Cocher Bouton Annuler?
J'ai une fonction JavaScript comme suit:
function popup(username) {
var req = createAjaxObject();
var message = prompt("Message:","");
if(message != ""){
req.onreadystatechange = function() {
if (req.readyState == 4) {
alert(req.responseText);
}
}
req.open('POST','getmessage.php',true);
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
req.send("username=" + username +"&message="+message);
} else {
alert("Please enter a message");
}
}
Lorsque le Cancel
bouton est frappé, la forme est toujours traitée par le biais de getmessage.php
. Une façon de le Cancel
bouton ne rien faire?
EDIT:
Ici est la façon dont cette fonction est appelée:
<?php
mysqlLogin();
$username = $_COOKIE['sqlusername'];
$sql = mysql_query("SELECT username FROM `users` WHERE username!='$username'");
if(mysql_num_rows($sql) != 0) {
echo "<table class='usertable' align='center'>";
while($row = mysql_fetch_array($sql)){
$username = $row['username'];
echo "<tr><td><center>" . $row['username'] . "</center></td><td> <a href='#' onClick=\"popup('$username');\">Send Message</a></td></tr>";
}
echo "</table>";
} else {
echo "<center>No users found!</center>";
}
?>
La PHP
script de son liés à:
<?php
$id = rand(1,1500);
$poster = $_POST['username'];
$message = $_POST['message'];
$to = $_COOKIE['sqlusername'];
require('functions.php');
mysqlLogin();
$sql = mysql_query("INSERT INTO `messages` VALUES ('$id','$message','$to','$poster','')");
if($sql){
echo "Message sent!";
} else {
echo "Woops! Something went wrong.";
}
?>
OriginalL'auteur Jason | 2011-08-05
Vous devez vous connecter pour publier un commentaire.
Dans le cas de
Cancel
, l'invite résultat estnull
, etnull != ''
(comme par ECMA-262 Section 11.9.3).Donc, d'y ajouter une vérification explicite pour
null
l'inégalité:Cependant, puisque le message est soit une chaîne de caractères ou
null
et que vous souhaitez seulement passer quand c'est une chaîne aveclength > 0
, vous pouvez également le faire:Cela signifie: si le message est truthy (c'est à dire pas
null
ou une chaîne vide, entre autres falsy valeurs), puis entrez la clause if.N'est ce violon pour vous? jsfiddle.net/pimvdb/bmxFH
Donner " si(message)' a essayer et de voir comment vous allez
le violon fonctionne, mais mon script n'est pas @cheesus
if(message)
ne fonctionne pas.Si aucune de ces suggestions ne fonctionnent pas et le violon fonctionne, alors il doit y avoir quelque chose de pas correct.
OriginalL'auteur pimvdb
Êtes-vous à l'aide de Safari, par hasard? J'ai trouvé que Safari semble être de retour chaîne vide à la place de null lorsque l'utilisateur clique sur Annuler.
Voir ici: Safari 5.1 prompt() et la fonction annuler.
OriginalL'auteur user3734688
Ouais, je suggère commentaire n'travail
JSFiddle
null
valeur dans le script php.OriginalL'auteur Paul Carroll
Je suis désolé....je suis nouveau et j'ai toujours des problèmes avec votre langue....mais je veux t'aider...désolé encore une fois.
OriginalL'auteur Hackerman
OriginalL'auteur zus
OriginalL'auteur Hendro