[英]How can I get selected option value?
我试图在PHP中获取选定的选项值,并且想在选定值和数据库值(例如PHP中的席位ID)之间进行比较。 但是,它导致未定义的错误。 你可以检查我的密码吗?
<script type="text/javascript">
function transfer(){
var pix = $("#pix option:selected").val();
document.abc.test.value =pix;
}
</script>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
</script>
<script>
function ajaxWay() {
var sel = $("#pix option:selected").val();
$.get("p.php?pix="+ sel );
// syntax: $.post(URL,data,callback);
$.get("p.php", function(dataFromtheServer) {
$("#result").html(dataFromtheServer);
});
}
</script>
<body>
<div id="a" style="text-align:center;">
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM seat" ;
$result = mysqli_query($conn, $sql) or die("Query: ($sql) [problem]");
?>
<form name="abc" method="get">
<select name="select" id="pix">
<?php
if (mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result))
{
echo "<option value='".$row[seat_id]. "'>" .$row[seatNumber]. "</option>";
}
}
mysqli_close($conn);
?>
</select>
<input type="button" value="click" onclick="transfer();">
<input type="button" value="click" onclick="ajaxWay()">
<input type="text" name="test" id="text">
<aside id="result">i will put the empty space from database</aside>
</form>
p.php
<?php
$servername = "***.compute-1.amazonaws.com";
$username = "***";
$password = "***";
$dbname = "***";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM seat";
$result = mysqli_query($conn, $sql) or die("Query: ($sql) [problem]");
$fields = mysqli_num_fields($result);
if (mysqli_num_rows($result) > 0) {
// output data of each row
// display("<table border=1><th>firstname</th><th>lastname</th><th>items</th>","\n");
while($row = mysqli_fetch_assoc($result)) {
if($_GET['pix'] == $row['seat_id']){
if($row['seatStatus'] == 1)
{
echo "available" ;
}
else
{
echo "unavailable";
}
}
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
这是一个很自然的猜测,但是看起来好像有2个GET
请求,带有参数,另一个不带-回调函数似乎正在处理不带参数的调用,因此它看起来应该更像:
$.get("p.php?pix="+ sel, function( dataFromtheServer ) {
$("#result").html( dataFromtheServer );
});
我不知道以下内容是否会有所帮助,但我不禁感到ajax函数看起来很奇怪。
<html>
<head>
<title></title>
<script type="text/javascript">
function transfer(){
var pix = $("#pix option:selected").val();
document.abc.test.value=pix;
}
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
function ajaxWay() {
var sel = $("#pix option:selected").val();
console.info( 'send ajax request: p.php?pix=%s', sel );
$.get("p.php?pix="+ sel, function(r) {
console.info('response: %s',r );
$("#result").html( r );
});
}
</script>
</head>
<body>
<div id="a" style="text-align:center;">
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";
$conn=new mysqli($servername, $username, $password, $dbname);
$sql='select * from `seat`;';
$result = $conn->query( $sql );
?>
<form name="abc" method="get">
<select name="select" id="pix">
<?php
if( $result ){
while( $rs=$result->fetch_object() ){
echo "<option value='{$rs->seat_id}'>" . $rs->seatNumber;
}
}
$conn->close();
?>
</select>
<input type="button" value="click" onclick="transfer();">
<input type="button" value="click" onclick="ajaxWay()">
<input type="text" name="test" id="text">
<aside id="result">i will put the empty space from database</aside>
</form>
</body>
</html>
/* p.php */
$servername = "ec2-52-201-212-193.compute-1.amazonaws.com";
$username = "s2016b_user21";
$password = "s2016b_user21";
$dbname = "s2016b_user21";
/* alternative sql */
$conn = new mysqli( $servername, $username, $password, $dbname );
$sql='select `seatStatus` from `seat` where `seat_id`=?;';
$stmt=$conn->prepare( $sql );
$stmt->bind_param( 'i', $_GET['pix'] );
if( $stmt ){
$stmt->execute();
$stmt->bind_result( $status );
$stmt->fetch();
echo $status==1 ? 'available' : 'unavailable';
}
$conn->close();
我不太了解JQuery。
您可以尝试使用javascript上的console.log(sel)
和php上的var_dump($_GET['pix'])
来确保已获取“ sel”的值。
//javascript
var pix = $("#pix option:selected").val();
console.log(pix);
//PHP
var_dump($_GET['pix']);
如果var_dump($_GET['pix'])
为NULL,则您的JavaScript代码应如下所示:
<script>
function ajaxWay() {
var sel = $("#pix option:selected").val();//check the value of sel
var url = "p.php";//check the path of p.php
$.get(url,{'pix':sel},function(dataFromtheServer) {
$("#result").html(dataFromtheServer);
});
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.