ホームページ >バックエンド開発 >PHPチュートリアル >PHPでjQueryを使用したajaxパラメータの受け渡しの問題について、助けてください。
実現したいのは、以下の関数です。
現在、ツリーの結果は 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>
<?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);?>
<?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); ?>
は 938b1a729856b97ccd0ecb010c0bad01/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(); } } }
それは ed3937905728a4c2ba169b7056688f45 に配置されていますか? >
$($(".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
});
もう一度確認するか、パラメータを渡さないようにしてください
投稿者のコードの 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>