2017-02-14 8 views
0

の要素にアクセスする際に問題が発生しましたので、AJAXを使用して下記のPhpページに接続するWebサイトで作業しています。 phpはデータベースに接続し、if条件に基づいてクエリを実行します。それから、テーブルとしてhtmlに戻ります。私が今しようとしているのは、入力タグ(myCheckBox)と対応する価格と商品の説明にアクセスすることです。商品の説明と価格がデータベースから返されます。 2つの名前は$ row ['ItemDescription]と$ row [Price]です。入力タグにはid(myCheckBox)が与えられます。どのように私はhtmlでこれらの要素を参照することができます。私はちょうど項目の説明と価格で暮らすことができますが、入力タグも持っているといいです。 htmlはPHPの下に表示されます。ここで HTMLページのPHPページからAJAX

<head> 
<style> 
    table {width: 100%;border-collapse: collapse;} 
    table, td, th {border: 1px solid black;padding: 5px;} 
    th {text-align: left;} 
</style> 
</head> 

<body> 

<?php 

    $q =$_GET['q']; 

    $con = mysqli_connect("connection","uName","pass", "dbName"); 
    if (!$con) { 
    die('Could not connect: ' . mysqli_error($con)); 
    } 

    mysqli_select_db($con,"ajax_demo"); 

    if($q == 's'){$sql="SELECT * FROM Goods WHERE Category = 'Sporting Goods'";} 
    if($q == 'e'){$sql="SELECT * FROM Goods WHERE Category = 'Entertainment'";} 
    if($q == 'c'){$sql="SELECT * FROM Goods WHERE Category = 'Clothes'";} 

    $result = mysqli_query($con,$sql); 

    echo "<table id='myTable'> 
    <tr> 
    <th>Item Description</th> 
    <th>Price</th> 

    </tr>"; 
    while($row = mysqli_fetch_array($result)) { 

    echo "<td><input id='myCheckBox' type='checkbox'>" . $row['ItemDescription'] . "</td>"; 
echo "<td>" . $row['Price'] . "</td>"; 

echo "</tr>"; 
} 
echo "</table>"; 
mysqli_close($con); 
?> 
</body> 
</html> 

htmlです。

function showUser(str, myInt) { 
    if (str == "bob") { 
     document.getElementById("myDiv2").innerHTML = ""; 
     return; 
    } else { 
    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
      document.getElementById("myDiv2").innerHTML = this.responseText; 
    alert(this.responseText); 

     } 
    }; 
if(myInt == 1){xmlhttp.open("GET","getuser.php?q="+str,true);} 

if(myInt == 2){xmlhttp.open("GET","shop.php?q="+str,true);} 

if(myInt == 3){xmlhttp.open("GET","aInfo.php?q="+myVar3[0],true);} 
    xmlhttp.send(); 
    } 
} 

ありがとうございました。入力タグはwhileループで作成されることに注意してください。これは、書式設定に役立ちます。私は各入力タグにアクセスしたいと思います。それは対応する価格と商品の説明です。次に、これらを配列インデックスで参照できます。

答えて

0

私は問題を解決することができましたが、私は自分のPHPページで再フォーマットする必要がありました。目的は、PHPページから要素にアクセスし、他のページで要素を処理できるようにすることでした。元のページは下のソリューションで動作しますが、追加の手順が必要になります。

function myFun(){myDivVar =document.getElementById("myDiv2").children; 
    varArrayNew=Array.prototype. 
    slice.c all(myDivVar); 
    alert(varArrayNew[1].innerHTML);alert(varArrayNew).length; 

     } 

とPHP

.....

<!DOCTYPE html> 
<html> 
<!--<input type='button' id='bob 'value='hello'> --> 
<head> 
<style> 
    table {width: 100%;border-collapse: collapse;} 
    table, td, th {border: 1px solid black;padding: 5px;} 
    th {text-align: left;} 
</style> 
</head> 
<body> 

<?php 

$q =$_GET['q']; 

$con = mysqli_connect("path","userNa","pass", "db"); 
if (!$con) {die('Could not connect: ' . mysqli_error($con)); } 

mysqli_select_db($con,"ajax_demo"); 

if($q == 's'){$sql="SELECT * FROM Goods WHERE Category = 'Sporting Goods'";} 
if($q == 'e'){$sql="SELECT * FROM Goods WHERE Category = 'Entertainment'";} 
if($q == 'c'){$sql="SELECT * FROM Goods WHERE Category = 'Clothes'";} 

$result = mysqli_query($con,$sql); 


while($row = mysqli_fetch_array($result)) { 

echo "<p>". $row['ItemDescription'].":"; 
echo $row['Price']. ",<br></p>"; 


} 

    mysqli_close($con); 
    ?> 
</body> 
</html> 

わけではありません、それは、forループで返される値を分割の問題だという応答テキスト列の長さマイナス1

を反復処理
関連する問題