繁体   English   中英

如何在单击时获取目标的名称并将值分配给另一个变量?

[英]how to get the name of the target on click and assign the value to another variable?

所以我有一个空变量

var pName= null;

每次单击图像时,我都希望变量“ pName”更改为该图像的名称。

$(document).ready(function(){
$('img').on('click', check)
});

function check(){
    pName == target.name.value;
    console.log('pName');
}

现在,我想将此变量的值设置为隐藏形式(或任何其他方式,如果您建议的话),在php中选择它,并将变量“ $ pName”(在php中)的值更改为隐藏的形式。

<label><input type="hidden" name="pNameChange" value=""></label>

我想在每一页上都这样做。 我的代码似乎无效。

编辑

我在每个页面$ pName(php)上都有一个变量。 我希望它动态更改为您单击的图像的名称。 我不知道我是否做对了。

编辑2

这是我的项目php文件:

<?php
$newRecord = null;
$pName = "kkk";
$db_connection = mysqli_connect('localhost','root','',"project_online_planner");
if (!$db_connection){
    die('Failed to connect to MySql:'.mysql_error());
}

//insert into database
if(isset($_POST['insertComments'])){
    include('connect-mysql.php');
    $username = $_POST['username'];
    $comment = $_POST['comment'];
    $sqlinsert = "INSERT INTO user_comments (username, comment, project) VALUES ('$username', '$comment', '$pName')";
        if (!mysqli_query($db_connection, $sqlinsert)){
            die('error inserting new record');
        }
        else{
            $newRecord = "1 record added";
        }//end nested statement

}

//text from database
$query="SELECT * FROM user_comments where project = '$pName' ";
$results = mysqli_query($db_connection,$query);
$intro=mysqli_fetch_assoc($results);

$query2="SELECT * FROM project where name = '$pName' ";
$results2 = mysqli_query($db_connection,$query2);
$intro2=mysqli_fetch_assoc($results2);


?>

在这里,我使用$ pName作为项目的名称。 我项目中的每个图像都有它们所在项目的名称。我试图将变量$ pName的值动态更改为单击的图像。

这是我所有的项目php文件:

<?php
$pName =
$db_connection = mysqli_connect('localhost','root','',"project_online_planner");
if (!$db_connection){
    die('Failed to connect to MySql:'.mysql_error());
}
$query="SELECT * FROM project ";
$results = mysqli_query($db_connection,$query);
$intro=mysqli_fetch_assoc($results);
?>
<!DOCTYPE HTML>
<html>
<head>
    <title>Project planner online</title>
    <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
    <script type="text/javascript" src="ppo.js"></script>
    <link rel="stylesheet" href="ppo.css"/>
</head>
<body>
<div id="bgNav">
    <nav id="nav">
        <a href="index.php">Home</a>
        <a class="rightNav" href="register.php">Register</a>
        <a class="rightNav" href="login.php">Log in</a>
    </nav>
</div>
<h2 class="titlePage">All projects</h2>
<div id="hugeTile">
    <?php

    while($row = mysqli_fetch_array($results))
    {
        $project = $row["project"];
        echo "<div class='allProjectsWrapper'>";
        echo nl2br("<div class='allProjectsTitle'>" . $row['name'] . "</div>");
        echo nl2br("<div class='project'>" ."<img name=\"$project\" width='240px' height='170px'  src='". $row['image'] ."'/>". "</div>");
        echo "</div>";
    }
    ?>
</div>
<form>
    <label><input type="hidden" name="pNameChange" value=""></label>
</form>

这样使用

$('img').click(function(){
   pname= $(this).attr("name");
  });

首先将ID添加到隐藏字段

<label><input type="hidden" name="pNameChange" id="pNameChange" value=""></label>

然后您可以像这样拾取图像名称

$('img').click(function()
{
    path = $(this).attr('src').split('\/');
    $img_name = path[path.length-1];
    $('#pNameChange').val($img_name); //Changing the pNameChange value
});

如果您只想在单击图像后更改“ pNameChange ”的值,则不需要PHP。

还有,当你做

pName == target.name.value;

它不分配值,它使用比较。

=用于分配值。

==用于比较

确保您已全局定义var,从图像中获取href属性,然后通过其名称设置输入,因为那里没有ID:

<script type="text/javascript">
    var pName = '';

    $(document).ready(function(){
        $('img').on('click', function(){
            pName = $(this).attr('href');
            $("input[name=pNameChange]").val(pName);
        })
    }); 
</script>

this在局部范围内将是从DOM图像元素。

您需要解析在php中发送的href属性,因为它将具有完整的img url,除非您使用自定义属性或将名称放在图像ID或类似的名称中:

<?php 
    $segments = explode('/', $pName);

    if(!empty($segments)) {
        $length = count($segments);
        $img_name = $segments[$length-1];
    }
?>

只需在您的check()函数中使用它即可:

$("#pNameChange").val(pname);

并且不要忘记在输入中添加id“ pNameChange”

<input type="hidden" id="pNameChange" name="pNameChange" value="">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM