0

こんにちは、選択ノードの値を取得するのに問題があり、何も取得できません。私は道場/リクエストを使用しています。そして、単純な ajax ファイルでテストしたところ、サーバーの getuser1.php が機能しています。

要求行で、データの値が正しくない可能性があります

アドバイスしてください...ありがとう

以下に 2 つのスクリプトを示します。- main.php ファイル -

require(["dojo/parser", "dojo/ready","dijit/form/Select",
         "dojo/request","dojo/on","dojo/domReady!"],
function(parser, ready, Select, request, on){

    ready(function(){   

        console.debug('Rendering...');
        var selectX = new Select({
            name:'select_test',
            options:[
                {label:"<span class='NotinUse'><b>&nbsp&nbsp&nbsp. . .</b></span>", value:'0', selected:true},
                {label:"<span class='inUse'><b>&nbsp&nbspPeter Griffin</b></span>", value:'1'},
                {label:"<span class='inUse'><b>&nbsp&nbspLois Griffin</b></span>", value:'2'},
                {label:"<span class='inUse'><b>&nbsp&nbspJoseph Swanson</b></span>", value:'3'},
                {label:"<span class='inUse'><b>&nbsp&nbspGlenn Quagmire</b></span>", value:'4'},
            ], 
            style:{width:'150px'}
        },"select");

        on(formNode2, 'Change', function(evt){
            evt.stopPropagation();
            evt.preventDefault();

            request.post('getuser1.php',{   
                data:{select_test:this.value},
                timeout:2000
            }).then(function(response){
                dom.byId('line2').innerHTML=response;
            });
        });
    });
});

getuser1.php ファイル:-

<?php 
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("ajax_demo", $con);


$sql="SELECT * FROM user WHERE id = $q";

$result = mysql_query($sql);

// use stored function to return one result instead later. Write here after stored     procedure has been stored. 

echo "<table border='1'>
<tr>
<th width=100>Firstname</th>
<th width=100>Lastname</th>
<th width=100>Age</th>
<th width=100>Height</th>
<th width=100>Hometown</th>
<th width=100>Job</th>
</tr>";

while($row = mysql_fetch_array($result))
 {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "<td>" . $row['Age'] . "</td>";
  echo "<td>" . $row['Height'] . "</td>";
  echo "<td>" . $row['Hometown'] . "</td>";
  echo "<td>" . $row['Job'] . "</td>";
  echo "</tr>";
  }
    echo "</table>";

mysql_close($con);
?>
4

1 に答える 1

0

開発中はブラウザのエラー コンソールを使用することを忘れないでください。多くの場合、コード内の単純なタイプミスなどが通知されます。

この場合、いくつか問題があります。と を混同しているようselectXですformNode2。おそらく次のようになります。

on(selectX, 'Change', function(evt){ 

selectXこれを機能させると、の値を変更すると、コンソールにエラーが表示されることに気付くでしょう。

evt.stopPropagation is not a function

これは、ここでは evt 引数が実際にはイベント オブジェクトではないためです。選択した要素から、イベントではなく、新しい値のみを取得します。これを次のように変更すると、コンソールに私の意味が表示されます。

on(selectX, 'Change', function( newValue ){
    console.debug('The new value is', newValue);
    //evt.stopPropagation();
    //evt.preventDefault();

jsfiddle で動作するようにいくつかの変更を加えましたが、アイデアが得られるはずです: http://fiddle.jshell.net/AmxKv/

于 2013-02-06T14:23:23.387 に答える