2017-12-09 24 views
0

DIVする応答からHTMLコードを添付していません:AJAXは応答を返しますが

<form method="POST"> 
<input type="text" name="unu" id="unu"> 
<input type="text" name="doi" id="doi"> 
<button type="button" onclick="check()">OK</button> 
</form> 
<div id="show_panels"></div> 

function check() { 
    $.ajax({ 
    type: "POST", 
    url: "2.php", 
    data: $("form").serialize(), 
    success: function(result) { 
     $('#show_panels').html(result); 
    }, 
    error: function(result) { 
     console.log("Eroare:"); 
     console.log(result); 
    } 
    }); 

    var result_input = document.getElementById('result'); 
    console.log(result_input.value); 
} 

<?php 
$var_unu = $_POST['unu']; 
$var_doi = $_POST['doi']; 
$rezultat = $var_unu + $var_doi; 
?> 
<input type='text' value='<?php echo $rezultat ?>' id='result'/> 

返さ入力からあなたが見ることができるように、私は(テストのために)私のコンソールで取得しようとしています、値id結果が、コンソール・リターンと:

Uncaught TypeError: Cannot read property 'value' of null。ページのソースで

私は私の返さ入力用コードを持っている `tを。 私は間違っていますか?

ブラウザビュー:

enter image description here

表示ページのソース:

enter image description here

答えて

2

HTML inputresultsuccess callbac後に存在するためkが実行される。

function check() { 
    $.ajax({ 
    type: "POST", 
    url: "2.php", 
    data: $("form").serialize(), 
    success: function(result) { 
     $('#show_panels').html(result); 

     var result_input = document.getElementById('result'); 
     console.log(result_input.value); 
    }, 
    error: function(result) { 
     console.log("Eroare:"); 
     console.log(result); 
    } 
    }); 
} 

補正してくれてありがとう@Titusを:

はこれで試してみてください。


更新:

:フォームでHTML inputresultを追加

あなたはいくつかの変更を必要と返された値を再利用する必要がある場合。

<form method="POST"> 
    <input type="text" name="unu" id="unu"> 
    <input type="text" name="doi" id="doi"> 
    <button type="button" onclick="check()">OK</button> 
    <input type="text" value="" id="result" /> 
</form> 
<div id="show_panels"></div> 

はHTML inputresultで返された値を出力します。

function check() { 
    $.ajax({ 
    type: "POST", 
    url: "2.php", 
    data: $("form").serialize(), 
    success: function(result) { 
     $('#show_panels').html(result); 

     document.getElementById('result').value = result; 
    }, 
    error: function(result) { 
     console.log("Eroare:"); 
     console.log(result); 
    } 
    }); 
} 

:PHPファイルで、ちょうどechoを使用して$rezultatを返します。

<?php 
$var_unu = $_POST['unu']; 
$var_doi = $_POST['doi']; 
$rezultat = $var_unu + $var_doi; 
echo $rezultat; 
?> 
+0

また、最初のajaxから返された入力結果を使用する2番目のAjaxがある場合はどうなりますか?私はajaxにajaxを書きますか?私は最初のajaxで返された入力値を得るために2番目のajaxが必要です。 –

+0

PHPからHTMLの 'input'を直接返しています。単一の値を返し、それをHTMLの 'input'に代入する方が良いでしょう。その後、いつでもその値を再利用することができます。 –

+0

@BogdanC私は自分の答えを更新しました。 –

関連する問題