2012-01-12 2 views
0

Я сейчас с ума с Ajax, есть что-то, что я не получаю.Ajax, как получить данные из HTML-формы

Я хочу, чтобы пользователь вводил свой пароль, а затем их новый пароль дважды, но я хочу использовать Ajax для отправки этих данных в скрипт PHP, чтобы проверить его и, если необходимо, сохранить новый пароль в базе данных.

Я просто не понимаю, как получить данные из формы HTML в сценарий Ajax. Везде, где я смотрю в Интернете, информация, похоже, только меня путает, но это немного похоже на то, что всегда кажется, когда мы пытаемся найти помощь в Java-продукте, который я чувствую.

Так Heres Teh Ajax:

ajaxRequest.onreadystatechange = function() 
{ 
    if(ajaxRequest.readyState == 4){ 
     //document.myForm.time.value = ajaxRequest.responseText; 
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
    } 
} 

var queryString = "?oldpass=" + oldpass + "&newpass=" + newpass + "&newpassretype="  + newpassretype; 

ajaxRequest.open("post", "serverTime.php", true); 
ajaxRequest.send(queryString); //Would use this to send post data (passwords) to the script 

я пропустил все Broswer конкретные вещи, потому что я уверен, что вы видели все это раньше.

<form> 
<input type="password" name="oldpass" id="oldpass" /> 
<input type="password" name="newpass" id="newpass" /> 
<input type="password" name="newpassretype" id="newpassretype" /> 
<input type="submit" onclick="ajaxFunction('oldpass', 'newpass', 'newpassretype')" name="button2" id="button2" value="Change Password" /> 
<div id="txtHint"></div></form> 

Я думаю, что я что-то пропустил, но у меня нет понятия, что это такое! Есть идеи?

спасибо за ваше время, и я надеюсь, что это не что-то глупое.

+3

JavaScript является «связанным с Java» таким же образом, что пирог «связан с копировальной машиной». (На самом деле, я думаю, это больше похоже на то, как копировальный аппарат связан с «пирогом» :-) – Pointy

+0

Вы пропустили, что английское слово «I» отображается во всех столицах. –

+0

Это больше похоже на то, как ковер «связан с автомобилем». – Quentin

ответ

2

Просто измените одну строку, и она будет работать ...

var queryString = "?oldpass=" + document.forms[0]["oldpass"].value + 
    "&newpass=" + document.forms[0]["newpass"].value + 
    "&newpassretype=" + document.forms[0]["newpassretype"].value; 

2 вещи, хотя ...

  1. Вы пропусканием пароль и Подтверждение в URL , Это не нужно, так как вы должны проверить, что они одинаковы на стороне клиента, а не отправлять их для проверки на стороне сервера.

  2. Вы не должны отправлять информацию о пароле в URL-адрес, поскольку это самая легкая вещь в мире для захвата.

+0

* ReferenceError: $ не определен * (И даже если бы это было так, вам нужно закодировать данные, чтобы сделать их безопасными для URI). – Quentin

+0

... «даже если это _were_»! –

+0

Извините, я все время смотрел на вопросы jQuery и неправильно ответил на это. Я буду обновлять для не-jQuery. Спасибо :) – Archer

1

Вы жёстко строки, которые вы передаете в ajaxFunction, вам нужно использовать DOM, чтобы получить доступ к полям формы и получить их значение. Вам также необходимо запустить encodeURIComponent над ними, чтобы сделать их безопасными, чтобы они попали в строку запроса.

Смежные вопросы