在<a>標籤中直接傳遞引數時,多個<a>標籤在點選時會衝突

友好的匕首發表於2020-11-15

今天在學習php時發現 :

在< a>標籤中直接傳遞引數時,如果有多個< a>標籤傳遞引數,那麼在點選時會產生衝突,不能同時存在,想了很久想出了一個解決方案

<?php 
 	$uri = $_SERVER['QUERY_STRING']; 		//獲取位址列引數
	if($uri){ 								//當位址列有引數時
		if(strstr($uri,"name1")){			//當需要傳遞的引數已經在位址列時,直接輸出
			echo $uri;
		}else{
			echo $uri,'&name1=name1';		//當需要傳遞的引數不在位址列時,把需要傳遞的引數加到原有的引數後面一起輸出
		}
	}else{									//當位址列沒有引數時,直接輸出
		echo 'name1=name1';
	} 
?>

這是我做的小案例的程式碼

<!doctypehtml>
<html>
	<head>
		<meta charset="utf-8">
		<title>sample</title>
	</head>
	<?php
		$uri = $_SERVER['QUERY_STRING']; 						//獲取位址列引數
	?>
	<body>
		<form method="get">
			<input type="text">
			<a href="?<?php 
						if($uri){ 								//當位址列有引數時
							if(strstr($uri,"name1")){			//當需要傳遞的引數已經在位址列時,直接輸出
								echo $uri;
							}else{
								echo $uri,'&name1=name1';		//當需要傳遞的引數不在位址列時,把需要傳遞的引數加到原有的引數後面一起輸出
							}
						}else{									//當位址列沒有引數時,直接輸出
							echo 'name1=name1';
						} 
				?>">name1</a><br>
			<input type="text">
			<a href="?<?php if($uri){if(strstr($uri,"name2")){echo $uri;}else{echo $uri,'&name2=name2';}}else{echo 'name2=name2';}?>">name2</a><br>
			<input type="text">
			<a href="?<?php if($uri){if(strstr($uri,"name3")){echo $uri;}else{echo $uri,'&name3=name3';}}else{echo 'name3=name3';}?>">name3</a>
		</form>
	</body>
</html>

<?php
	if(isset($_GET['name1'])){
		echo $_GET['name1'],"<br>";
	}
	if(isset($_GET['name2'])){
		echo $_GET['name2'],"<br>";
	}
	if(isset($_GET['name3'])){
		echo $_GET['name3'],"<br>";
	}
?>

效果如圖
在這裡插入圖片描述

如果有更好的解決方法或有什麼問題,可以用評論告訴我,一起交流學習

相關文章