Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击时获取目标的名称并将值分配给另一个变量?_Javascript_Php_Jquery_Forms_Variables - Fatal编程技术网

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

Javascript 如何在单击时获取目标的名称并将值分配给另一个变量?,javascript,php,jquery,forms,variables,Javascript,Php,Jquery,Forms,Variables,所以我有一个空变量 var pName= null; 每次单击图像时,我都希望变量“pName”更改为该图像的名称 $(document).ready(function(){ $('img').on('click', check) }); function check(){ pName == target.name.value; console.log('pName'); } 现在我想把这个变量的值放到一个隐藏的形式中(或者,如果你建议的话,用任何其他方式),在php中提取

所以我有一个空变量

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);


?>
<?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>

首先向隐藏字段添加ID

<label><input type="hidden" name="pNameChange" id="pNameChange" value=""></label>
如果只想在单击图像后更改“
pNameChange
”的值,则不需要PHP

还有,当你

pName == target.name.value;
它不赋值,而是使用比较

=
用于赋值

=
用于比较

这样使用

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

只需在check()函数中使用:

$("#pNameChange").val(pname);
别忘了在输入中添加id“pNameChange”

<input type="hidden" id="pNameChange" name="pNameChange" 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>

是否要获取当前图像的名称?是的,我在每个页面上都使用了一个变量。我希望它动态更改为您单击的图像的名称。我不知道我做的是否正确。您是否从php数据库中获得
$pName
?图像的名称是什么?你是通过某个数据属性声明名称,还是通过id/class,或者通过href,或者通过alt?否,我想要一个变量$pName,并且其值等于表单的值。我不知道如何在php中做到这一点,而不提交它。根据$pName的值,页面的所有内容都会发生变化。这是我的一个查询示例:$query=“SELECT*FROM user_comments,其中project='$pName'$pName应该是数据库中项目的名称。我的代码正常工作,只是我希望它能动态更改。在这里,我们必须假设图像名称与image href相同。@AbhishekPrakash他没有给出任何关于名称对他意味着什么的提示。。。除此之外,如果他需要在后端做些什么,我想他很可能真的想要得到那张图片的文件名。对不起,我只是用更多的细节编辑了它。
<script type="text/javascript">
    var pName = '';

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

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