使用 php 计算 html 个文本字段的输入
Calculate input of html text fields with php
目前,我尝试在网页中创建调查。在调查结束时,用户可以用值填充两个文本字段。使用这些值,我的计划是计算输出,并在同一页面上为它们显示。所以:
输入:一个
输入:b
结果:ab+b-ab(请不要浓缩,仅举个例子)
我的计划是用户能够填写两个输入字段并通过单击按钮,php 函数正在计算结果字段(通过我自己的算法取决于输入 - 这已经在工作)并填写该字段。为此,我必须 link 到另一个网页吗?
以及如何获取两个输入值并将其提供给我的 php 函数?
最后,如何启动嵌入在 html 或自己文件中的 php 函数?
我尝试了您的解决方案和其他一些解决方案(使用 document.getElementById 从 DOM 获取 inputA 和 inputB 不起作用。下面是我的代码
<form>
InputA:<br>
<input type="text" id="inputA"/></br>
InputB:<br>
<input type="text" id="inputB"/></br>
Output:<br>
<input type="text" id="output"/>
</form>
<input name="go" type="button" value="Calculate" id="calculate" >
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js" ></script>
<script type="text/javascript">
$("#calculate").click(function(){
$.get( "submit.php", { value1: $("#inputA").val(), value2: $("#inputB").val() } )
.done(function( data ) {
$("#output").val(data);
});
});
</script>
submit.php:
<?php
$value1 = $_POST['value1'];
$value2 = $_POST['value2'];
$output = $value1 + $value2;
echo($output);
}
?>
当我检查 firebug 错误时,我得到一个:在两个 (html 和 php) 文件中都没有找到元素异常。似乎问题在于: value1: $("#inputA").val();未向服务器提供任何值或无法在那里处理。
如果我从 DOM 中获取值,我可以 "bring" .click 函数中的值,但仍然存在 "no element found exception" 通过调用 submit.php .
我不知道我做错了什么,有什么建议吗?我需要 install/bind 任何内容才能使用 JQuery 吗?
经过一些额外的更改,它终于起作用了(一件事是 submit.php 文件中的 header 行):
<form>
WorkerID:<br>
<input type="text" id="workerId"/></br>
CampaignId:<br>
<input type="text" id="campaignId"/></br>
Payment Code:<br>
<input type="text" id="payCode"/>
</form>
<input name="go" type="button" value="Calculate" id="calculate" >
<script type="text/javascript">
$("#calculate").click(function(){
$.get( 'submit.php', { wId: $('#workerId').val(), cId: $('#campaignId').val()} )
.done(function( data ) {
$('#payCode').val(data.payCode);
});
});
和submit.php:
<?php
header('Content-Type: text/json');
$workerId = $_GET['wId'];
$campaignId = $_GET['cId'];
$payCode = $campaignId . $workerId;
$result = array("status" => "success",
"payCode" => $payCode);
echo json_encode($result);
?>
为简化起见,我正在使用 jQuery,在我看来,在 vanilla JS 中执行此操作真的很痛苦。
您可以使用 .get()
, which is the GET shorthand for .ajax()
.
使用该代码,您可以在提交按钮上绑定一个处理程序,并向您的 PHP 发出 AJAX 请求,然后将 PHP 给出的结果异步填充到您的结果字段中。
$("#calculate").click(function(){
$.get( "path/to/your_php.php", { value1: $("#inputA").val(), value2: $("#inputB").val() } )
.done(function( data ) {
$("#output").val(data);
});
});
也将您的提交更改为如下内容:
<input name="go" type="button" value="Calculate" id="calculate" >
这样,您的按钮不会提交表单,因此会同步加载您的 PHP。
因为您似乎是 JavaScript 的新手并且您有此评论
my button, but here i got redirected to submit, no idea how i can go back to page before with filled textfield
在你的问题中,我会告诉你,JavaScript 在加载 DOM(文档对象模型)时工作,这意味着你可以在加载后访问你的元素并更改它们。
获取输入值与 jQuery:
中一样简单
$("#inputA").val();
使用 AJAX,您将获得 php 在 data
中将 return 得到的东西。
// the { value1: $("#inputA").val(), value2: $("#inputB").val() } object
// is what you send to your PHP and process it
$.get( "path/to/your_php.php", { value1: $("#inputA").val(), value2: $("#inputB").val() } )
.done(function( data ) {
// data is what your php function returned
});
使用 JS,您现在可以像刚才所说的那样更改您的元素,这实际上意味着更改此处输出的值:
$("#output").val(data);
"Working"例子:JSFiddle(没有PHP可以访问,所以不会主动做任何事情)
目前,我尝试在网页中创建调查。在调查结束时,用户可以用值填充两个文本字段。使用这些值,我的计划是计算输出,并在同一页面上为它们显示。所以:
输入:一个
输入:b
结果:ab+b-ab(请不要浓缩,仅举个例子)
我的计划是用户能够填写两个输入字段并通过单击按钮,php 函数正在计算结果字段(通过我自己的算法取决于输入 - 这已经在工作)并填写该字段。为此,我必须 link 到另一个网页吗? 以及如何获取两个输入值并将其提供给我的 php 函数? 最后,如何启动嵌入在 html 或自己文件中的 php 函数?
我尝试了您的解决方案和其他一些解决方案(使用 document.getElementById 从 DOM 获取 inputA 和 inputB 不起作用。下面是我的代码
<form>
InputA:<br>
<input type="text" id="inputA"/></br>
InputB:<br>
<input type="text" id="inputB"/></br>
Output:<br>
<input type="text" id="output"/>
</form>
<input name="go" type="button" value="Calculate" id="calculate" >
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js" ></script>
<script type="text/javascript">
$("#calculate").click(function(){
$.get( "submit.php", { value1: $("#inputA").val(), value2: $("#inputB").val() } )
.done(function( data ) {
$("#output").val(data);
});
});
</script>
submit.php:
<?php
$value1 = $_POST['value1'];
$value2 = $_POST['value2'];
$output = $value1 + $value2;
echo($output);
}
?>
当我检查 firebug 错误时,我得到一个:在两个 (html 和 php) 文件中都没有找到元素异常。似乎问题在于: value1: $("#inputA").val();未向服务器提供任何值或无法在那里处理。
如果我从 DOM 中获取值,我可以 "bring" .click 函数中的值,但仍然存在 "no element found exception" 通过调用 submit.php .
我不知道我做错了什么,有什么建议吗?我需要 install/bind 任何内容才能使用 JQuery 吗?
经过一些额外的更改,它终于起作用了(一件事是 submit.php 文件中的 header 行):
<form>
WorkerID:<br>
<input type="text" id="workerId"/></br>
CampaignId:<br>
<input type="text" id="campaignId"/></br>
Payment Code:<br>
<input type="text" id="payCode"/>
</form>
<input name="go" type="button" value="Calculate" id="calculate" >
<script type="text/javascript">
$("#calculate").click(function(){
$.get( 'submit.php', { wId: $('#workerId').val(), cId: $('#campaignId').val()} )
.done(function( data ) {
$('#payCode').val(data.payCode);
});
});
和submit.php:
<?php
header('Content-Type: text/json');
$workerId = $_GET['wId'];
$campaignId = $_GET['cId'];
$payCode = $campaignId . $workerId;
$result = array("status" => "success",
"payCode" => $payCode);
echo json_encode($result);
?>
为简化起见,我正在使用 jQuery,在我看来,在 vanilla JS 中执行此操作真的很痛苦。
您可以使用 .get()
, which is the GET shorthand for .ajax()
.
使用该代码,您可以在提交按钮上绑定一个处理程序,并向您的 PHP 发出 AJAX 请求,然后将 PHP 给出的结果异步填充到您的结果字段中。
$("#calculate").click(function(){
$.get( "path/to/your_php.php", { value1: $("#inputA").val(), value2: $("#inputB").val() } )
.done(function( data ) {
$("#output").val(data);
});
});
也将您的提交更改为如下内容:
<input name="go" type="button" value="Calculate" id="calculate" >
这样,您的按钮不会提交表单,因此会同步加载您的 PHP。
因为您似乎是 JavaScript 的新手并且您有此评论
my button, but here i got redirected to submit, no idea how i can go back to page before with filled textfield
在你的问题中,我会告诉你,JavaScript 在加载 DOM(文档对象模型)时工作,这意味着你可以在加载后访问你的元素并更改它们。
获取输入值与 jQuery:
中一样简单$("#inputA").val();
使用 AJAX,您将获得 php 在 data
中将 return 得到的东西。
// the { value1: $("#inputA").val(), value2: $("#inputB").val() } object
// is what you send to your PHP and process it
$.get( "path/to/your_php.php", { value1: $("#inputA").val(), value2: $("#inputB").val() } )
.done(function( data ) {
// data is what your php function returned
});
使用 JS,您现在可以像刚才所说的那样更改您的元素,这实际上意味着更改此处输出的值:
$("#output").val(data);
"Working"例子:JSFiddle(没有PHP可以访问,所以不会主动做任何事情)