我有以下脚本:
编辑:
<?php
session_start();
//connect to database
function connect() {
$dbh = mysql_connect ("localhost", "d", "a") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db("PDS", $dbh);
return $dbh;
}
if(isset($_SESSION['username'])){
$dbh = connect();
$id = $_SESSION['id'];
$sql="SELECT a.athleteId, a.fName, a.lName FROM Athletes a, SupportStaff s, StaffAthletes sa WHERE sa.staffId = $id AND a.athleteId = sa.athleteId";
$result=mysql_query($sql);
$ids = array();
$options="";
$i = 1;
while ($row=mysql_fetch_array($result)) {
$ids[]=$row['atheleteId'];
$f=$row["fName"];
$l=$row["lName"];
$options.="<OPTION VALUE=\"$i\">".$f.' '.$l."</OPTION>";
$i++;
}
$array = "";
for($x = 0; $x < count($ids); $x++)
{
$array .= "[" . $ids[$x][0] . ", ". $ids[$x][1] . "]" ;
if($x+1 < count($ids))
$ids .= ", ";
}
$idsArray = "new Array( " . $array . ")";
echo("<script>");
echo("var $ids = ".$idsArray);
echo("</script>");
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src = "jQuery.js"></script>
<script>
$(document).ready(function(){
$("#go").click(function(e){
if($("#selectathlete option:selected").val() == "0"){
alert("Please Select An Athlete");
}else{
//set hidden textfield to id of selected athlete
//NEED TO ACCESS $ids ARRAY HERE
$("form#athleteselect").submit();
}
});
});
</script>
<title>Personal Diary System - Home Page</title>
</head>
<body>
<h1>Home Page</h1>
<p>Select An Athlete:
<SELECT ID ="selectathlete" NAME="athletes">
<OPTION VALUE="0">Choose</OPTION>
<?php echo($options);?>
</SELECT>
</p>
<form id = "athleteselect" name="athleteselect" action="viewathleteprofile.php" method="post">
<input type = "hidden" name = "hidden" id = "athleteId" value = "">
<input type = "button" name = "go" id = "go" value = "Go"/>
</form>
</body>
</html>
<?php } ?>
我有一个id ='athleteId'的隐藏文本字段。我有一个php数组,其中包含我想在按下go按钮时分配给隐藏文本字段的值(即在$("#go").click
事件处理程序中。< / p>
你能做点什么:
$("#athleteId").text() = <?php echo("$ids[4]") ?>
答案 0 :(得分:1)
更改您执行的文本框的值
$("#id-of-your-textbox").attr("value","whatever-value");
当然,任何价值都可以是你想要的任何东西
答案 1 :(得分:0)
尝试将$ids
数组与页面响应一起发送为JavaScript
数组。
//This code will render the php variable as a js array along with page response
$array = "";
for($x = 0; $x < count($ids); $x++)
{
$array .= "[" . $ids[$x][0] . ", ". $ids[$x][1] . "]" ;
if($x+1 < count($ids))
$ids .= ", ";
}
$idsArray = "new Array( " . $array . ")";
echo("<script>");
echo("var $ids = ".$idsArray);
echo("$(document).ready(function(){");
echo("$(\"#go\").click(function(e){");
echo("var selText = $(\"#selectathlete option:selected\").text();");
echo("if($(\"#selectathlete\").val() == \"0\"){");
echo("alert(\"Please Select An Athlete\");");
echo("}else{");
echo("$(\"#athleteId\").val($ids[$(\"#selectathlete\").val()]);"); //not working
echo("$(\"form#profile\").submit();");
echo("}");
echo("});");
echo("});");
echo("</script>");
既然你没有在上面的代码(echos)中使用任何php变量,你可以直接在页面上将它用作js。您可以回显$ids
数组。
//This code will render the php variable as a js array along with page response
$array = "";
for($x = 0; $x < count($ids); $x++)
{
$array .= "[" . $ids[$x][0] . ", ". $ids[$x][1] . "]" ;
if($x+1 < count($ids))
$ids .= ", ";
}
$idsArray = "new Array( " . $array . ")";
echo("<script>");
echo("var $ids = ".$idsArray);
echo("</script>");
<script type="text/javascript">
$(document).ready(function(){
$("#go").click(function(e){
var selText = $("#selectathlete option:selected").text();
if($("#selectathlete").val() == "0"){
alert("Please Select An Athlete");
}else{
$("#athleteId").val($ids[$("#selectathlete").val()]);
//If you want the fourth index as per your edited question use this
//$("#athleteId").val($ids[4]);
$("form#profile").submit();
}
});
});
</script>