Document.getElementById (update [0]) является нулевым - PullRequest
0 голосов
/ 14 сентября 2010

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

document.getElementById (update [0]) имеет значение null

<script language="javascript">

function createRequestObject() {

var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
    ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
    ro = new XMLHttpRequest();
}
return ro;
}

var http = createRequestObject();

function sendemail() {
var msg = document.contactform.msg.value;
var name = document.contactform.name.value;
var email = document.contactform.email.value;
var subject = document.contactform.subject.value;
document.contactform.send.disabled=true; 
document.contactform.send.value='Sending....';

http.open('get', 'contact.php?msg='+msg+'&name='+name+'&subject='+subject+'&email='+email+'&action=send');
http.onreadystatechange = handleResponse;
http.send(null);
}

function handleResponse() {
if(http.readyState == 4){
    var response = http.responseText;
    var update = new Array();

    if(response.indexOf('|') != -1) {
        update = response.split('|');
        document.getElementById(update[0]).innerHTML = update[1];

    }
}
}
</script>

contact.php

if(!isset($_GET['action']))
{
die("You must not access this page directly!"); 
}

$name = trim($_GET['name']); //The senders name
$email = trim($_GET['email']); //The senders email address
$subject = trim($_GET['subject']); //The senders subject
$message = trim($_GET['msg']); //The senders message

mail($to,$subject,$message,"From: ".$email."");
echo 'response|Thank you '.$name.', 
?>

Ответы [ 3 ]

3 голосов
/ 14 сентября 2010

Изменить, для обновленного вопроса: Ваш сайт теперь работает для меня , обязательно очистите кэш с помощью Ctrl + F5 если у вас все еще есть проблемы.

Ваш if() чек немного снят, это:

if(response.indexOf('|' != -1)) {

должно быть:

if(response.indexOf('|') != -1) {

в настоящее время вы получаете ложный положительный результат, и код внутри этого if не должен даже выполняться ... но это:)

0 голосов
/ 15 сентября 2010

Это означает, что все, что вы возвращаете в responseText, не то, что вы хотите.

Если вы возвращаете

"updatePanel | my message"

Вам нужно что-то на своей странице, например:

<div id="updatePanel">your message will go here</div>

Так что проверьте возвращаемое значение, предупредив или проверив responseText.Firebug поможет вам.

0 голосов
/ 15 сентября 2010

Какое значение update прямо перед вашей getElementById строкой?Используйте console.log или эквивалентный, чтобы увидеть, включает ли массив то, что вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...