2016-08-13 5 views
0

からAJAXの応答を取得していないが、私は何の応答もgettignていないです、私はローカルホストのXAMPPに取り組んでいます私は私のページの一部を変更することなく、AJAXを使用して、すべてのページをリロードしようとしています下のuが見ることができるように、サーバー側のファイル

と両方のファイルは同じディレクトリにある

私も疲れ accdata.phpファイル内のデータベースに接続している間、私は、サーバー上に配置する場合、ホスト上のファイルをpalce、何も私も、エラーを取得していない を起こりませんためにそこにいる間データベースはありません

私はlosファイルのようにxmlhttp.open

のURL部分をポンティングの方法を変更するには、T:/// C:/xml/dineshkani.xml

のindex.php

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Site Title</title> 

</head> 

<body align="left"> 

<div> 
    <h4 align="left">Balance Enquiry</h4> 
</div> 

<form> 
    <div> 
     <label>Account Number </label> 
     <input id="AccNum" type="text" name="AccNumInput"> 
     <button type="button" onclick="SendForm()">Search</button> 
     </div> 
</form> 

<script> 
function SendForm() 
{ 
    alert("Hello! SendForm start"); 
     var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.onreadystatechange = function() 
    { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
      { 

       document.getElementById("AccNum").innerHTML = xmlhttp.responseText; 
      } 
    }; 
     alert("Hello! going to send ajax"); 
     xmlhttp.open("POST","AccData.php", true); 
     xmlhttp.send(document.getElementById("AccNum").value); // you want to pass the Value so u need the .value at the end!!! 

     alert(document.getElementById("AccNum").value); 
     alert("Hello! SendForm end"); 
} 
</script> 

</body> 

</html> 

accdata .PHP

<?php 

alert("Hello! php start processing"); 
echo "start"; 

$AccountNumber = $_POST['AccNum']; 

$conn = oci_connect('admin', 'admin', 'localhost/JDT', 'AL32UTF8'); 
if (!$conn) { 
    $e = oci_error(); 
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); 
} 

alert("Hello! connected to oracle"); 

$sqlstr = 'SELECT CUSTOMER_ID,CUST_NAME,PHONE1 FROM customers where CUSTOMER_ID=:AccNum'; 

$stid = oci_parse($conn, $sqlstr); // creates the statement 

oci_bind_by_name($stid, ':AccNum', $AccountNumber); // binds the parameter 

oci_execute($stid); // executes the query 

echo $AccountNumber; 
/** 
* THIS WHILE LOOP CREATES ALL OF YOUR HTML (its no good solution to echo data out like this) 
*/ 
while ($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) { 
    echo "<tr>"; 
    foreach ($row as $item) { 
     echo "<td align=center>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>"; 
    } 
    echo "</tr>\n"; 
} 
echo "</table>\n"; 

oci_free_statement($stid); // releases the statement 
oci_close($conn); // closes the conneciton 

?> 
+0

'PHPファイル内alert'文が何を期待しないだろうとAjaxの機能は、単に値ではなく、名前を送信します。値のペア – RamRaider

+0

私があればちょうど確認するために、最初のページに警告メッセージを追加しました2番目のページに到達すると、それはコードの一部ではありません – samer

答えて

0

AJAX関数は値だけではなく、関連する値を有するポスト変数を送信しています。これらの線に沿って試してみてください。ちょっと整えてみましょう。しかし重要なのは、ajax経由で送信するパラメータのname=valueです。Content-Typeヘッダーを設定すると、しばしば頑固なxhr要求に役立ちます。

JavaScriptが本体にある必要はありません。そのため、ドキュメントの頭の部分に移動しました。

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
     <title>Site Title</title> 
     <script> 
      function SendForm(){ 
       var xmlhttp = new XMLHttpRequest(); 
       xmlhttp.onreadystatechange = function() { 
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
         document.getElementById("AccNum").innerHTML = xmlhttp.responseText; 
        } 
       }; 
       xmlhttp.open("POST", "AccData.php", true); 
       xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
       xmlhttp.send('AccNum='+document.getElementById("AccNum").value); 
      } 
     </script> 
    </head> 
    <body> 
     <div> 
      <h4 align="left">Balance Enquiry</h4> 
     </div> 
     <form> 
      <div> 
       <label>Account Number </label> 
       <input id="AccNum" type="text" name="AccNumInput"> 
       <button type="button" onclick="SendForm()">Search</button> 
       </div> 
     </form> 
    </body> 
</html> 

パラメータが呼び出されたときにパラメータを変更するだけで再利用できる基本的なajax関数です。

function ajax(method,url,parameters,callback){ 
    var xhr=new XMLHttpRequest(); 
    xhr.onreadystatechange=function(){ 
     if(xhr.readyState==4 && xhr.status==200)callback.call(this, xhr.response); 
    }; 

    var params=[]; 
    for(var n in parameters)params.push(n+'='+parameters[n]); 

    switch(method.toLowerCase()){ 
     case 'post': 
      var p=params.join('&'); 
     break; 
     case 'get': 
      url+='?'+params.join('&'); 
      var p=null; 
     break; 
    } 
    xhr.open(method.toUpperCase(), url, true); 
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
    xhr.send(p); 
} 

function cbaccdata(r){ document.getElementById('AccNum').innerHTML=r; } 


function sendForm(){ 
    ajax.call(this, 'post','accdata.php',{ 'AccNum':document.getElementById("AccNum").value },cbaccdata); 
} 
+0

変更した後も同じです。検索ボタンを押しても何も起こらないことを示唆します。私は警告( "Hello")を追加しようとしました。コードはそのポイントに到達すると、メッセージ \t \t \t機能sendFormを(表示されていないかどうかをチェックする機能センドの先頭に) \t \t \t { \t \t \t \t警告(「こんにちは」); \t \t \t \t ajax.call(this、 'post'、 'accdata.php'、{'AccNum':document.getElementById( "AccNum")。value}、cbaccdata); \t \t \t} – samer

関連する問題

 関連する問題