PHPでjQueryを使用したajaxパラメータの受け渡しの問題について、助けてください。

WBOY
リリース: 2016-06-20 12:43:20
オリジナル
1234 人が閲覧しました

実現したいのは、以下の関数です。

現在、ツリーの結果は PHP (listhou.php) を使用して生成されていますが、このツリーの A タグをクリックせずにクリックするにはどうすればよいですか。ページを開き、パラメータを別の PHP ページ (listhou2.php) に渡して結果を取得しますか?
HTML 部分コード

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>测试</title><link rel="stylesheet" type="text/css" href="style/index.css" /><script type="text/javascript" src="js/jquery-1.11.3.min.js"></script><script type="text/javascript">$(function(){    $(".listshow ul").load("listhou.php");});</script></head><body><div class="listshow" ><ul></ul><a href="222">123</a><a href="333">321</a></div><div class="list2">   </div></body></html>
ログイン後にコピー

listhou.php コード
<?phpheader("Content-Type:text/html;Charset=utf-8");$host='localhost';$user='root';$password='63698000xw';$database='test';$conn=mysqli_connect($host, $user, $password, $database)      or die('DataBase connected error<br/>'.mysqli_connect_error($conn));$query="SELECT * FROM company";$result=mysqli_query($conn, $query);    while ($row=mysqli_fetch_assoc($result)) {            echo '<li>';           echo '<h5>'.$row['c_name'].'</h5>';        echo '<ul>';            $query1="SELECT * FROM department";            $result1=mysqli_query($conn, $query1);            while ($row1=mysqli_fetch_assoc($result1)) {                if ($row['id']==$row1['d_id']) {                    echo '<li><a class="geta" href="listhou2.php?userid='.$row1['id'].'">'.$row1['d_name'].'</a></li>';                }            }            mysqli_free_result($result1);         echo '</ul>';        echo '</li>';    }     mysqli_free_result($result);?>
ログイン後にコピー


listhou2.php コード
<?php header("Content-Type:text/html;Charset=utf-8");$host='localhost';$user='root';$password='63698000xw';$database='test';$conn=mysqli_connect($host, $user, $password, $database)      or die('DataBase connected error<br/>'.mysqli_connect_error($conn));        if (isset($_GET['userid'])) {            $row1id=$_GET['userid'];            // echo "$row1id";            $query2="SELECT * FROM user WHERE u_id=$row1id";            $result2=mysqli_query($conn,$query2);            // echo "我取得ID了";            if (mysqli_num_rows($result2)) {             echo '<table border="1">';                               echo "<tr><th>姓名</th><th>电话</th></tr>";                while ($row2=mysqli_fetch_assoc($result2)) {                    echo "<tr><td>{$row2['username']}</td><td>{$row2['tphone']}</td></tr>";                }                           }else{                echo "<tr><td>没有查到相关记录</td></tr>";                            }            $num=mysqli_num_rows($result2);            echo '<tr><th colspan="2">共取出'.$num.'条数据</th></tr>';            echo '</table>';                      mysqli_free_result($result2);          }else{            echo "没有获取ID";        }    mysqli_close($conn);    ?>
ログイン後にコピー


ディスカッションへの返信 (解決策)

/div>

$($(".listshow a").click(function() {  $("list2").load($(this).attr("href"));  return false;});
ログイン後にコピー
ログイン後にコピー


1. クリックイベントを追加 $($(".listshow a").click(function() {
2. 1 の処理 ajax を使用メソッド内で
を呼び出します。 3. listhou2.php ページで値を受け取り、それを処理します (値は返されるかどうかは問われません)


例:

$.ajax({                       type:'get',                      async : false,                      url: "{:U('paygoodsAjax')}",                       data:"ord_id="+ord_id,                                                              success: function(msg){                                              flag= true;                                              //alert(msg)                                              if(msg==1004){                                                  flag= false;                                                  $("#jian").html("商品已下架!")                                                  $("#jian").css("display",'block');                                                  function times(){                                                     $("#jian").css("display",'none');                                                     clearInterval(timer);                                                   }                                                  timer=setInterval(times,2500);                                                                                                 }                                              else if(msg==1003){                                                       flag= false;                                                       $("#jian").html("商品库存不够了")                                                       $("#jian").css("display",'block');                                                       function times(){                                                          $("#jian").css("display",'none');                                                          clearInterval(timer);                                                        }                                                       timer=setInterval(times,2500);                                                                     }else if(msg==1002){                                                      flag= false;                                                       $("#jian").html("订单存在过期促销商品!")                                                       $("#jian").css("display",'block');                                                       function times(){                                                          $("#jian").css("display",'none');                                                          clearInterval(timer);                                                        }                                                       timer=setInterval(times,3000);                                               }                                                                          //location.reload();                      }                  });                               return flag;  
ログイン後にコピー


バックエンド処理

//ajax 商品支付前判断       public function paygoodsAjax(){           $ord_id=I("get.ord_id");           //echo $ord_id;           $ordershopids=M("ordershop")->where("order_id = '$ord_id'")->getFields("shop_id");           //var_dump($ordershopids);           //判断商品是否下架或者库存为0           if($ordershopids){               foreach($ordershopids as $id){                   $goodsinfo=M("goodsshop")->where("id = '$id'")->find();                   //var_dump(M("goodsshop")->getLastSql());                   if($goodsinfo){                       if($goodsinfo['is_up']!=1){                           echo "1004";exit();                       }                       if($goodsinfo['stock']<=0){                           echo "1003";exit();                       }                   }else{                       echo "1004";exit();                   }               }           }  
ログイン後にコピー

それは

に配置されていますか? >

$($(".listshow a").click(function() {  $("list2").load($(this).attr("href"));  return false;});
ログイン後にコピー
ログイン後にコピー
このコードをページに追加すると、空白になります。



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>测试</title><link rel="stylesheet" type="text/css" href="style/index.css" /><script type="text/javascript" src="js/jquery-1.11.3.min.js"></script><script type="text/javascript"> $(function(){    $(".listshow ul").load("listhou.php");});</script></head><body><div class="listshow" ><ul></ul></div><div class="list2">   </div></body></html>
ログイン後にコピー
$(".listshow a") .click(function() {

$("list2").load($(this).attr("href"));

return false;
});リストは listhou.php で生成されるため、
$(".listshow ul").load("listhou.php");
のコールバック、つまり
$( ".listshow ul") .load("listhou.php", {}, function() {
$(".listshow a").click(function() {
$("list2"). load($(this) .attr("href"));
return
})
}); .click(function() {
$("list2").load($(this).attr("href"));
return false;
});リストは listhou.php で生成されるため、
$(".listshow ul").load("listhou.php");

のコールバックに記述する必要があります。 ,
$(".listshow ul") .load("listhou.php", {}, function() {
$(".listshow a").click(function() {
$ ("list2").load($(this) .attr("href"));
return
});

もう一度確認するか、パラメータを渡さないようにしてください




ハイパーリンク
ユーザー ID を通過できない場合はどうすればよいですか?







投稿者のコードの list2 の前にドットが 1 つありません。読み込まれていない可能性があります

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <script type="text/javascript" src="jquery.min.js"></script>    <script>        $(function(){            $('.listshow').load('list.php', function(){                $('.listshow a').on('click', function(){                    $('.list2').load($(this).attr('href'));                    return false;                });            });        })    </script></head><body><div class="listshow"></div><div class="list2"></div></body></html>
ログイン後にコピー

OK 皆さんありがとうございます、解決しました

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート