我知道如何使用纯PHP执行此操作,但我需要在不重新加载页面的情况下执行此操作.无论如何使用jQuery有效地撤回一些数据库结果(基于用户在表单上的第一个文本字段中输入的内容)然后使用从db查询中拉回的数据填充一些剩余字段?
基本上我希望看到用户离开文本字段(通过跳出或通过单击下一个字段)和繁荣,使用在该字段中输入的值提交查询,然后填充后续字段w/oa页面重新加载.
我熟悉jQuery的基础知识,但我还没有用它来做这样的事情,我从服务器上取回数据并尝试在客户端填充它.
任何关于如何最好地开始这个的建议/例子将非常感激.谢谢.
我听到过关于这个主题的不同反应,那么什么是破坏PHP会话的可靠方法呢?
session_start();
if(isset($_SESSION['foo'])) {
unset($_SESSION['foo'];
...
}
session_destroy();
Run Code Online (Sandbox Code Playgroud)
在最简单的情况下,这是否足以真正终止用户和服务器之间的会话?
我试图将Node.js应用程序中的一些数据发布到PHP脚本.暂时我只是构建一个概念证明,但我无法将实际数据传递给PHP端.请求通过,我得到200回来,但PHP认为$ _POST数组是空的.
这是我的节点代码:
// simple end point just for testing
exports.testPost = function(request, response) {
data = request.body.data;
postToPHP(data);
response.end(data);
}
function postToPHP (data) {
var http = require('http');
var options = {
host : 'localhost',
port : 8050,
path : '/machines/test/index.php',
method : 'POST',
headers : {
'Content-Type' : 'application/json',
'Content-Length' : Buffer.byteLength(data)
}
};
var buffer = "";
var reqPost = http.request(options, function(res) {
console.log("statusCode: ", res.statusCode);
res.on('data', function(d) {
console.info('POST Result:\n');
//process.stdout.write(d);
buffer = buffer+data;
console.info('\n\nPOST completed'); …Run Code Online (Sandbox Code Playgroud) 我有以下数组:
Array (
[1] => Array (
[spubid] => A00319
[sentered_by] => pubs_batchadd.php
[sarticle] => Lateral mixing of the waters of the Orinoco, Atabapo
[spublication] => Acta Cientifica Venezolana
[stags] => acta,confluence,orinoco,rivers,venezuela,waters
[authors] => Array (
[1] => Array (
[stype] => Author
[iorder] => 1
[sfirst] => A
[slast] => Andersen )
[2] => Array (
[stype] => Author
[iorder] => 2
[sfirst] => S.
[slast] => Johnson )
[3] => Array (
[stype] => Author
[iorder] => 3 …Run Code Online (Sandbox Code Playgroud) 我在PostgreSQL数据库中构建了一系列视图,其中包含几个数组列.视图定义如下:
create view articles_view as
(select articles.*,
array(select row(people.*)::people
from people
where articles.spubid=people.spubid and
people.stype='Author' and
bactive='t'
order by people.iorder) as authors,
array(select row(people.*)::people
from people
where articles.spubid=people.spubid and
people.stype='Editor' and
bactive='t'
order by people.iorder) as editors,
array(select row(people.*)::people
from people
where articles.spubid=people.spubid and
people.stype='Reviewer' and
bactive='t'
order by people.iorder) as reviewers,
array(select row(status.*)::status
from status
where articles.spubid=status.spubid and
bactive='t') as status
from articles
where articles.bactive='t');
Run Code Online (Sandbox Code Playgroud)
基本上我想要做的是在'author'列上的iLike,以确定该数组中是否存在特定的用户ID.显然我不能在该数据类型上使用iLike,所以我需要找到另一种方法.
以下是'authors'数组中的数据示例:
{"(2373,t,f,f,\"2011-08-01 11:57:40.696496 \",/ Pubs/pubs_edit_article.php,\"2011-08-09 15:36:29.281833 \",000128343, A00592,作者,1,尼古拉斯,K.,Kreidberg,\ "\",123456789,T,管理员,A,A,A,0,\ "\") ""(2374,T,F,F,\ "2011-08-01 11:57:40.706617 …
我知道有一个更优雅/有效的方法(在php中我会使用foreach)但是使用jQuery我如何走JSON响应的var/val对并填充与字段名称相同id的表单字段在JSON响应中?
这是我的JSON响应:
[{"field":"svendor_name","value":"Vendor Name Inc."},{"field":"svendor_addr1","value":"1234 Vendor Lane."},{"field":"svendor_addr2","value":"Suite 100"},{"field":"svendor_city"
,"value":"Vendorville"},{"field":"svendor_state","value":"CA"},{"field":"svendor_zip","value":"90210"},{"field"
:"svendor_phone","value":"800-555-1234"}]
Run Code Online (Sandbox Code Playgroud)
这是我填充表单的jQuery代码:
$(document).ready(function()
{
$('#svendor_name').bind("change", function()
{
var svendor = $("#svendor_name").val();
svendor = svendor.replace(/&/g, '*');
$.getJSON("get_vendors.php?sname=" + svendor,
function(data)
{
$.each(data,
function(i, item)
{
if(item.field == "svendor_name")
{
$("#svendor_name").val(item.value);
}
else if(item.field == "svendor_addr1")
{
$("#svendor_addr1").val(item.value);
}
else if(item.field == "svendor_addr2")
{
$("#svendor_addr2").val(item.value);
}
else if(item.field == "svendor_city")
{
$("#svendor_city").val(item.value);
}
else if(item.field == "svendor_state")
{
$("#svendor_state").val(item.value);
}
else if(item.field == "svendor_zip")
{
$("#svendor_zip").val(item.value);
}
else if(item.field == "svendor_phone")
{
$("#svendor_phone").val(item.value); …Run Code Online (Sandbox Code Playgroud) 我有世界上最简单的javascript函数:
fnSubmit()
{
window.print();
document.formname.submit();
}
Run Code Online (Sandbox Code Playgroud)
这叫做:
<button type="button" id="submit" onclick="fnSubmit()">Submit</button>
Run Code Online (Sandbox Code Playgroud)
一切都很好,打印对话框显示,但在打印或取消打印后,我收到以下错误:
"document.formname.submit不是函数"
我的表单定义如下:(显然我没有在实际代码中使用formname,但你明白了)
<form name="formname" id="formname" method="post" action="<?=$_SERVER['SCRIPT_NAME']?>">
Run Code Online (Sandbox Code Playgroud)
显然我并不想在这里做任何特别的事情,我过去也使用过类似的方法,我在这里想念的是什么?
我有一个情况,我想保护一些文件(列出目录并访问内容),除非存在特定标头并且该标头包含正确的值。
例如,如果存在名为“x-test-header”的标头并且其值为“abc123”,则让流量通过,否则返回 403。
我尝试过多种方法,例如:
RewriteEngine On
RewriteCond %{HTTP_x-test-header} !^abc123
RewriteRule ^.*$ - [R=403,L]
Run Code Online (Sandbox Code Playgroud)
上面的代码可以阻止流量,但是当我使用 REST 客户端包含标头时,它仍然返回 403。显然我没有做正确的事情,有人能指出我正确的方向吗?
在 AWS 上使用 Apache 2.4.33。
我已经阅读了很多关于此的帖子,但没有任何可靠的答案.这是我的代码:
// button creation
onew = document.createElement('input');
onew.setAttribute("type", "button");
onew.setAttribute("value", "hosts");
onew.onclick = function(){fnDisplay_Computers("'" + alines[i] + "'"); }; // ie
onew.setAttribute("onclick", "fnDisplay_Computers('" + alines[i] + "')"); // mozilla
odiv.appendChild(onew);
Run Code Online (Sandbox Code Playgroud)
现在,setAttribute()方法(带有mozilla注释)在mozilla中工作正常,但只有在它上面的行之后才会出现.换句话说,它似乎只是默认为最后设置的那个..onclick方法(使用ie注释)在任何一种情况下都不起作用,我使用不正确吗?
无论哪种方式,我都找不到在IE中完成这项工作的方法,更不用说两种方式了.我在使用.onclick方法时确实更改了函数调用,只需简单调用一个警报函数就可以正常工作,这就是为什么我认为我的语法不正确.
长话短说,我无法让onclick参数在IE/Mozilla之间保持一致.
- 尼古拉斯
我想在用户在#sid字段中输入值后立即使用数据库中的值填充表单字段.这是我的jQuery/HTML示例:
<script src="jquery-1.3.1.min.js"></script>
<script type="text/JavaScript">
$(document).ready(function()
{
$('#sid').bind("change", function(){
$.getJSON("test.php?sid=" + $("#sid").val(),
function(data)
{
$.each(data.items,
function(i, item)
{
if (item.field == "saffil")
{
$("#saffil").val(item.value);
}
else if (item.field == "sfirst")
{
$("#sfirst").val(item.value);
}
});
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是我的处理脚本(test.php,由.getJSON方法调用)
<?
require_once("db_pers.inc");
$ssql = "SELECT * FROM contacts_mview WHERE sempid = '".$_GET['sid']."'";
$rres = pg_query($hdb, $ssql);
pg_close($hdb);
$ares = pg_fetch_assoc($rres);
$json = array(array('field' => 'saffil',
'value' => $ares['saffil']),
array('field' => 'sfirst',
'value' => $ares['sfirst']));
echo json_encode($json);
?>
Run Code Online (Sandbox Code Playgroud)
根据firebug,GET param被传递到test.php并且JSON对象恢复正常:
[{"field":"saffil","value":"Admin"},{"field":"sfirst","value":"Nicholas"}]
Run Code Online (Sandbox Code Playgroud)
但是页面上没有任何反应,我收到以下错误消息: …