所以我有一个空变量
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)上使用。我希望它动态更改为您单击的图像的名称。我不知道我是否以正确的方式做到了。
EDIT2
这是我的项目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>
答案 0 :(得分:1)
像这样使用,
$('img').click(function(){
pname= $(this).attr("name");
});
答案 1 :(得分:0)
首先在隐藏字段中添加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;
它没有赋值,它使用比较。
=
用于分配值。
==
用于比较
答案 2 :(得分:0)
确保全局定义了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 attr,因为它将包含整个img url,除非您使用自定义属性或将名称放在图像ID或类似内容中:
<?php
$segments = explode('/', $pName);
if(!empty($segments)) {
$length = count($segments);
$img_name = $segments[$length-1];
}
?>
答案 3 :(得分:-1)
只需在check()函数中使用它:
$("#pNameChange").val(pname);
并且不要忘记在输入中添加ID“名称更改”
<input type="hidden" id="pNameChange" name="pNameChange" value="">