これは奇跡です!それを理解するのを助けてください。JSのミラクル。結果が異なる1つの関数
私は私のPHPファイルで一部のHTMLコードを持っている:
<form action="" method="post" name="r_form" >
<table>
<tr>
<td> Name: </td>
<td> <input type="text" name="r_name" id = "rname" /> </td>
</tr>
<tr>
<td align="center" colspan="2"> <img src="FE.png" width="40" height="40" id="firstentryID" onClick="nextFunc()"></td>
</tr>
</table>
</form>
そして、私のauth.phpでフォローコード:
<script type="text/javascript">
Preload();
nextFunc();
function Preload() {
var valueToPush = {};
var name2 = [];
var userID1 = '<?php echo $id_user;?>';
$.ajax({
url: 'TR.php',
type: 'POST',
data: {userID1: userID1},
success: function(data){
var names = data
$('#result_div_id').html(data);
var json2 = $.parseJSON(data);
EntriesCount =json2.length;
$.each(json2, function() {
$.each(this, function(k, v){
switch(k) {
case 'Name':
valueToPush.Name = v;
break;
// and more parametrs - it doesnt matter.
}
});
name2.push({ID_Clients: valueToPush.id, Name: valueToPush.Name, Phone: valueToPush.Phone, Email: valueToPush.Email, Status: valueToPush.Status, Birthday: valueToPush.Birthday, ClientFrom: valueToPush.ClientFrom, User: valueToPush.User});
});
}
});
}
...
そして、私のnextFunc(中)私が持っている:
をfunction nextFunc(){
document.getElementById("rname").value = name2[currententry]['Name'];
}
私のJSONで私は持っているので:
[12]
0: {
ID_Clients: "87"
Name: "Вася"
Phone: "1234578"
Status: "4"
Birthday: "2016-10-21"
ClientFrom: "4"
User: "2"
}-
1: {
ID_Clients: "88"
Name: "Петя"
Phone: "2345669"
Status: "3"
Birthday: "2016-10-11"
ClientFrom: "2"
User: "2"
} ... and so on...
奇跡です:
私はこのコードのように私のブロックからNextFunc()を呼び出したとき、私は
捕捉されない例外TypeErrorを受け取る:NextFunc undefinedat()
のプロパティ 'name' を読み込めません私のWebページでFE.pngを押すとコードが動作しています!!!
WHY ????
おそらく、ドキュメントがまだ完全に読み込まれていないときに呼び出すとします。ドキュメントの一番下にコールしてみてください。 – Plirkee
'currententry'は' nextFunc'を呼び出すときに定義されていないためですか? – n00dl3
いいえ、 "document.getElementById(" rname ")を挿入しました。value = name2 ['2'] ['Name'];"また、 "document.getElementById(" rname ")。value = name2 [2] ['Name'];"しかしそれは私のために働かない(((( –