[英]how to take a Value from a javascript variable, to be used as a php input variable via a button, without or not a submit button?
how to take a Value from a javascript variable, to be used as a php input variable via a button, not a submit button because the submit button cannot generate sequences more than once at the same time? 如何从一个javascript变量获取一个值,通过一个按钮而不是一个提交按钮用作一个php输入变量,因为提交按钮不能同时生成多个序列? I have tried this method but I still can't get the output ("x") from js using the button.
我尝试过这种方法,但我仍然无法使用按钮从js获取输出(“x”)。 this is my first code with javascript I tried as best I could because I tried to use break but it didn't work then i put x-- to freze it.
这是我的第一个使用javascript的代码我尽力尽力,因为我试图使用break但它没有用,然后我把x--放开它。
this javascript work like i want, but still can't get value "x" from button value
这个javascript工作就像我想要的,但仍然无法从按钮值获得值“x”
Code: 码:
<title>Test-2019</title>
<!-- x += 1 -->
<!-- Java Script -->
<script>
x = 0;
function f_Next()
{
x++;
document.getElementById("Next").value = x;
if(x == 5) {
x--;
}
}
</script>
<!-- HTML -->
<form method="post" action="#">
<input type="button" value="Soal" id="Next" onClick="f_Next()">
<!--
<input type="hidden" value="0" id="Next">
-->
</form>
<!-- PHP -->
<?
$a = array("str1", "str2", "str3", "str4", "str5");
if (isset($_POST['soal']))
{
$va = $_POST['soal'];
print $a[$va];
}
?>
on delphi I always use this method and I also tried to implement it but it didn't work so I tried making it with java script. 在delphi上我总是使用这个方法,我也尝试实现它,但它没有用,所以我尝试用java脚本。
Delphi Example Code: 德尔福示例代码:
//global var
const
a : array[0..4] of string = ('str1', 'str2', 'str3', 'str4', 'str5');
var
g : integer;
...
...
//on create
g := 0;
...
...
//on button click
g := g + 1;
if g = 5 then
g = 0;
edit1.text := IntToStr(g);
//or like this example 2
button1.tag := button1.tag + 1;
if button1.tag = 5 then
button1.tag := 0;
edit1.text := IntToStr(button1.tag);
php code was i tried, like this PHP代码是我试过的,像这样
function fNext();
{
$x = 0;
if ($x == 5)
{
break;
}
x += 1;
}
i'm sorry if i included pascal/delphi code, cz maybe you can help me to convert it into php. 对不起,如果我包括pascal / delphi代码,cz也许你可以帮我转换成php。
Thank you. 谢谢。
Not really sure what you are trying to do here, BUT if you want the value of an <input>
element to get to PHP it HAS TO HAVE A name
attribute! 不确定你在这里尝试做什么,但是如果你想要一个
<input>
元素的值到达PHP它有一个name
属性!
So change your input to 所以将输入更改为
<input name="Next" type="button" value="Soal" id="Next" onClick="f_Next()">`
// ^^^^^^^^^^^ added this
Now you need to address it properly in the $_POST
array, so if we call the element Next
as in name="Next"
we should use $_POST['Next']
and not $_POST['soal']
as soal
was the value
attribute which by the way the javascript should have overwritten with 1 or 2 etc 现在你需要在
$_POST
数组中正确地解决它,所以如果我们在name="Next"
调用元素Next
,我们应该使用$_POST['Next']
而不是$_POST['soal']
作为soal
是value
属性,其中javascript应该用1或2等覆盖
$a = array("str1", "str2", "str3", "str4", "str5");
if (isset($_POST['Next']))
{
$va = $_POST['Next'];
print $a[$va];
}
I'm not 100% sure I grasped the intent of the question but I hope this might be more or less the desired outcome? 我不是百分百肯定我抓住了问题的意图,但我希望这可能或多或少是预期的结果?
Each click of the button increments the counter x
and will send this value to the PHP script. 每次单击该按钮都会递增计数器
x
,并将此值发送到PHP脚本。 The PHP script responds with the value from the array appropriate to the value of x
PHP脚本使用适合
x
值的数组中的值进行响应
The ajax callback increments the variable and does other, really interesting, things. ajax回调会增加变量并执行其他非常有趣的事情。
<?php
$a = array("str1", "str2", "str3", "str4", "str5");
if (isset($_POST['soal'])){
$va = $_POST['soal'];
$response=( array_key_exists( $va, $a ) ) ? $a[ $va ] : 'error';
exit( $response );
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Test-2019</title>
<script>
document.addEventListener('DOMContentLoaded', ()=>{
let x=0;
const ajax=function(payload,callback){
let xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if( this.status==200 && this.readyState==4 )callback.call( this, this.response );
}
xhr.open('POST', location.href, true );
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send( payload );
}
const callback=function(r){
alert(r);
x++;
if( x==5 )x=0;
}
document.querySelector( 'form input[ type="button" ]' ).addEventListener('click', function(e){
ajax.call( this, 'soal=' + x, callback )
});
});
</script>
</head>
<body>
<form method='post'>
<input type='button' value='Soal' />
</form>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.