jQuery 取第 PHP 个结果
jQuery taking the first PHP result
我正在尝试 select 来自数据库的数据 jQuery,但我的问题是只有第一个结果绑定了点击处理程序。
这是 PHP 部分:
<?php
$sql = "SELECT * FROM cars WHERE rented = '0'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div id="car" car-name="'.$carName.'">'.$carName.'</div>';
}
}else{
echo 'ολα τα αυτοκινιτακια ειναι νοικιασμενα';
}
?>
和jQuery部分:
$('#car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
假设我正在动态创建两个 div 元素(因为数据库中只有两条记录)。 jQuery 只识别第一个。我怎样才能让它识别所有 div 元素?
代替 id (#car) 使用 class(.car) 作为 div
PHP
echo '<div class="car" car-name="'.$carName.'">'.$carName.'</div>';
JQUERY
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
用于 html data-car-name="car name"
和jquery
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div class="car" data-car-name="'.$carName.'">'.$carName.'</div>';
}
$('.car').on('click', function(){
var carName = $(this).attr('data-car-name');
alert(carName);
});
@ManiMuthuPandi 也同意使用 类。
您需要访问 class 名称而不是 ID
上的事件
<?php
$sql = "SELECT * FROM cars WHERE rented = '0'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div class="car" car-name="'.$carName.'">'.$carName.'</div>';
}
}else{
echo 'ολα τα αυτοκινιτακια ειναι νοικιασμενα';
}
?>
JS
$('.car').on('click', function(){
var carName = $(this).attr('data-car-name');
alert(carName);
});
$(document).on('click','#car',function(){ var carName = $(this).attr('car-name'); alert(carName); } );
因为浏览器附加的点击处理程序比您的 php rendering.If 快,所以您将在文档上附加点击处理程序然后它将始终有效。
希望对您有所帮助
谢谢
您正在覆盖#car id。使用 class:
<?php
$sql = "SELECT * FROM cars WHERE rented = '0'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div class="car" car-name="'.$carName.'">'.$carName.'</div>';
}
}else{
echo 'ολα τα αυτοκινιτακια ειναι νοικιασμενα';
}
?>
JQuery:
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
您应该添加 class 辆车:
<?php
$sql = "SELECT * FROM cars WHERE rented = '0'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div class="car" car-name="'.$carName.'">'.$carName.'</div>';
}
}else{
echo 'ολα τα αυτοκινιτακια ειναι νοικιασμενα';
}
?>
Jquery
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
希望对您有所帮助:)
根据属性 id 的 MDN 文档:
The id global attribute defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).1
因此,在创建 div 元素时,请为它们的 id 属性赋予唯一值。为了将点击处理程序添加到汽车元素的所有元素,请将 class 属性(例如 class="car"
)添加到 <div>
元素:
echo '<div id="car_'.$carName.'" car-name="'.$carName.'" class="car">'.$carName.'</div>';
然后在点击处理程序中使用 class selector(即 .car
):
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
查看下面的演示(删除了 PHP 代码,因为此沙箱不支持它):
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="car_MDX" car-name="MDX" class="car">MDX</div>
<div id="car_m3" car-name="m3" class="car">m3</div>
<div id="car_z3" car-name="z3" class="car">z3</div>
1https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id
我正在尝试 select 来自数据库的数据 jQuery,但我的问题是只有第一个结果绑定了点击处理程序。
这是 PHP 部分:
<?php
$sql = "SELECT * FROM cars WHERE rented = '0'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div id="car" car-name="'.$carName.'">'.$carName.'</div>';
}
}else{
echo 'ολα τα αυτοκινιτακια ειναι νοικιασμενα';
}
?>
和jQuery部分:
$('#car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
假设我正在动态创建两个 div 元素(因为数据库中只有两条记录)。 jQuery 只识别第一个。我怎样才能让它识别所有 div 元素?
代替 id (#car) 使用 class(.car) 作为 div
PHP
echo '<div class="car" car-name="'.$carName.'">'.$carName.'</div>';
JQUERY
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
用于 html data-car-name="car name"
和jquery
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div class="car" data-car-name="'.$carName.'">'.$carName.'</div>';
}
$('.car').on('click', function(){
var carName = $(this).attr('data-car-name');
alert(carName);
});
@ManiMuthuPandi 也同意使用 类。
您需要访问 class 名称而不是 ID
上的事件<?php
$sql = "SELECT * FROM cars WHERE rented = '0'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div class="car" car-name="'.$carName.'">'.$carName.'</div>';
}
}else{
echo 'ολα τα αυτοκινιτακια ειναι νοικιασμενα';
}
?>
JS
$('.car').on('click', function(){
var carName = $(this).attr('data-car-name');
alert(carName);
});
$(document).on('click','#car',function(){ var carName = $(this).attr('car-name'); alert(carName); } );
因为浏览器附加的点击处理程序比您的 php rendering.If 快,所以您将在文档上附加点击处理程序然后它将始终有效。
希望对您有所帮助
谢谢
您正在覆盖#car id。使用 class:
<?php
$sql = "SELECT * FROM cars WHERE rented = '0'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div class="car" car-name="'.$carName.'">'.$carName.'</div>';
}
}else{
echo 'ολα τα αυτοκινιτακια ειναι νοικιασμενα';
}
?>
JQuery:
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
您应该添加 class 辆车:
<?php
$sql = "SELECT * FROM cars WHERE rented = '0'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$carName = $row['name'];
echo '<div class="car" car-name="'.$carName.'">'.$carName.'</div>';
}
}else{
echo 'ολα τα αυτοκινιτακια ειναι νοικιασμενα';
}
?>
Jquery
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
希望对您有所帮助:)
根据属性 id 的 MDN 文档:
The id global attribute defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).1
因此,在创建 div 元素时,请为它们的 id 属性赋予唯一值。为了将点击处理程序添加到汽车元素的所有元素,请将 class 属性(例如 class="car"
)添加到 <div>
元素:
echo '<div id="car_'.$carName.'" car-name="'.$carName.'" class="car">'.$carName.'</div>';
然后在点击处理程序中使用 class selector(即 .car
):
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
查看下面的演示(删除了 PHP 代码,因为此沙箱不支持它):
$('.car').on('click', function(){
var carName = $(this).attr('car-name');
alert(carName);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="car_MDX" car-name="MDX" class="car">MDX</div>
<div id="car_m3" car-name="m3" class="car">m3</div>
<div id="car_z3" car-name="z3" class="car">z3</div>
1https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id