А последовал несколько примеров, но я просто не могу заставить его работать. После отправки формы я вызываю эту функцию:
function kontrola(){
var jmeno = self.document.forms.newPassForm.user.value;
$.get("checkMail.php?mail="+jmeno, function(jeObsazen){
alert(jeObsazen);
});
return false;
}
И PHP файл, где решено изменение переменной jeObsazen, выглядит так:
<?
include "protected/_mysql.php";
$mail=$_GET['mail'];
$query = mysql_query("SELECT 'id' FROM 'users' WHERE 'name' = '".$mail."'");
$data=mysql_fetch_array($query);
if($data['id']==NULL) $jeObsazen = false;
else $jeObsazen = true;
?>
<script type="text/javascript" language="JavaScript">
var jeObsazen = <?echo $jeObsazen;?>
</script>
Единственное, что я хочу - показать в окне предупреждения, если переменная jeObsazen истинна или ложна. Теперь он включает все в теги, включая. Я слишком много спрашиваю? :))
Заранее благодарю за каждую помощь!
Попробуйте вернуть что-то из вашего PHP-скрипта:
<?
include "protected/_mysql.php";
$mail=$_GET['mail'];
$query = mysql_query("SELECT 'id' FROM 'users' WHERE 'name' = '".$mail."'");
$data=mysql_fetch_array($query);
if($data['id']==NULL) $jeObsazen = false;
else $jeObsazen = true;
echo $jeObsazen;
?>
И помните, что jeObsazen
в javascript будет строкой, а не логической
Прежде чем продолжить, добавьте некоторую обработку ошибок, чтобы убедиться, что ваш внутренний код работает. Это включает проверку запроса на отказ, и если он возвращает любые строки:
if( $query === false ) {
// query failed, details can be reached in mysql_error()
} else if( mysql_num_rows( $query ) ) {
// no data returned
} else {
$data = mysql_fetch_array($query);
}
ПРИМЕЧАНИЕ. Удалите комментарии//и верните сообщение в случае сбоя.
Вы поблагодарите меня за это позже, когда вы задаетесь вопросом, почему ничего не возвращается, и причиной является отсутствие данных в db или плохой запрос!
Затем вам не нужны теги в вашем php, это не нужно. Вам просто нужно выгрузить переменную:
$data = mysql_fetch_array($query);
if( $data['id'] != NULL ) {
echo $data['id']; // this will return the id to your javascript $.get call
}
Вот как это выглядит:
<?
include "protected/_mysql.php";
$mail=$_GET['mail'];
$query = mysql_query("SELECT 'id' FROM 'users' WHERE 'name' = '".$mail."'");
if( $query === false ) {
echo "Query failure";
} else if( mysql_num_rows( $query ) ) {
echo "No data returned";
} else {
$data = mysql_fetch_array($query);
echo ( $data['id'] != NULL ); // returns 1 if user is not null, 0 otherwise
}
?>
$.get
?