2016-06-30 4 views
0

私はデータベース値javascript/ajaxを渡そうとしています。直接送信すると正常に動作する場合は、JavaScriptを使用して2つの文字列を一緒に送ることができません

私はデータベースからやろうとしています。どのように動作しないのかいくつか。私はこのようなスクリプトにオプションの値を送信してい

<select name="users" onchange="showUser(this.value)"> 

と私はこのような値を直接送信するとき、それはスクリプトで正しい値を示しています。同じことが、私はこのように、データベースからフェッチする場合

<option value="Peter Grif">Peter Griffin</option> 

スクリプトの結果は=ピーターGRIF

であると。ドロップダウンボックスで

while($row=$select->fetch_assoc()) 
     { 
      echo "<option value=".$row['name'].">".$row['name']."</option>"; 
     } 

それはまさに「ピーターGRIF」のようにフルネームで

を取り組んでいます。しかし、スクリプトの結果は、=「ピーター」スペースの後の名前の第二部が来ることはありません。

完全なプログラム:

<html> 
<head> 
<script> 
function showUser(str) { 
    window.alert(str); 

} 
</script> 
</head> 
<body> 
<body> 

<form> 


    <center> <select name="users" onchange="showUser(this.value)"> </center> 

    <option value="Peter Grif">Peter Griffin</option> 
    <option value="Lois Griff">Lois Griffin</option> 

     <?php 
      include("connection.php"); 
      $select=$con->query("select name from users group by name"); 

      while($row=$select->fetch_assoc()) 
      { 
       echo "<option value=".$row['name'].">".$row['name']."</option>"; 
      } 

     ?> 

    </select> 

</form> 

<br> 

</body> 
</html> 
+1

'エコー "<オプション値=" '$行[ '名前'] ' ">" $行[' 名前'] "";。。' – Rayon

答えて

0

私はあなたのコードをwhileループで修正し、あなたが望むように動作します。その引用問題。

<html> 
    <head> 
    <script> 
    function showUser(str) { 
     window.alert(str); 

    } 
    </script> 
    </head> 
    <body> 
    <body> 

    <form> 


     <center> <select name="users" onchange="showUser(this.value)"> </center> 

     <option value="Peter Grif">Peter Griffin</option> 
     <option value="Lois Griff">Lois Griffin</option> 

      <?php 
       include("connection.php"); 
       $select=$con->query("select name from users group by name"); 

       while($row=$select->fetch_assoc()) 
       { 
        echo '<option value="'.$row['name'].'">'.$row['name'].'</option>'; 
       } 

      ?> 

     </select> 

    </form> 

    <br> 

    </body> 
    </html> 
+0

ワウ!素晴らしいそれは働いた。私はこれのために3時間を無駄にしました:(ありがたい男) –

+0

あなたは歓迎です。正しいものとしてマークしてください私はいくつかのポイントを与えたり、マークを付けます:D:D、とにかくあなたwelsomeです –

0
echo "<option value=".$row['name'].">".$row['name']."</option>"; 

オプション値は引用符で囲む必要があります。あなたはどちらか

echo "<option value='".$row['name']."'>".$row['name']."</option>"; 

または多分

echo "<option value='{$row['name']}'>{$row['name']}</option>"; 

をすることができます(

<option value=Peter Grif>Peter Grif</option> 

で終わるそう

<option value='Peter Grif'>Peter Grif</option> 

のように終わるので、それを引用符で囲む必要がありますされています周囲の二重引用符で囲まれた参照配列中括弧で囲まれているので、連結よりも読むのが楽になると思うので、特にHTMLをエコーするときに見積もりが混乱することはありませんが、それは私の好みです。

ページのソースを閲覧すると、生成されたHTMLが有効であることを確認するのに役立ちます。

関連する問題