从一个DIV发送获取的数据到另一个
这是使用PHP和AJAX从一个DIV发送获取的数据到另一个
更新的代码
的index.php
<html>
<head>
<script language="javascript">
function showresult()
{
var product_name = document.getElementById("searchval").value;
if(window.XMLHttpRequest)
{
XMLHttpRequestObject = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
XMLHttpRequestObject.open("POST", "search.php", true);
XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XMLHttpRequestObject.send("search_res=" + product_name);
XMLHttpRequestObject.onreadystatechange = function()
{
if(XMLHttpRequestObject.readyState == 4)
{
if(XMLHttpRequestObject.status == 200)
{
document.getElementById("displayresult").innerHTML = XMLHttpRequestObject.responseText;
}
}
}
}
function throwval(obj)
{
var sent_id = obj.id;
var v = document.getElementById(sent_id).value;
var newp = document.createElement("p");
var text = document.createTextNode(v);
newp.appendChild(text);
document.getElementById("getselected").appendChild(newp);
}
function sendvalues()
{
var div_val = document.getElementById("getselected");
var str="|";
for (i=0; i < div_val.getElementsByTagName("p").length; i++)
{
var paragraphs = div_val.getElementsByTagName("p");
var pvalues = paragraphs.item(i).innerHTML;
str = str + pvalues + "|";
}
window.location="send_data.php?str="+str;
}
</script>
</head>
<body>
<form method="post" name ="searchform" id="idsearchform" >
<input type="text" name="search" id="searchval"/>
<input type="button" name="starts" value="startsearch" onclick="showresult()"/>
</form>
<div id="displayresult">
</div>
<div id="getselected">
Selected :
</div>
<form name="sendf" method="post" action="send_data.php">
<input type="button" id="sendtophp" name="sendingval" value="next step" onclick="sendvalues()">
</form>
</body>
</html>
的search.php
从MySQL数据库中检索名称代码$mysql_con = mysql_connect("localhost","root","") or die("Could not connect".mysql_error());
$mysql_db = mysql_select_db("test",$mysql_con) or die("Unable to select db ".mysql_error());
$keyword = mysql_real_escape_string($_POST['search_res']);
$search_q = mysql_query("Select * from products where pname like '%$keyword%'");
if(mysql_num_rows($search_q)!=0)
{
while($result = mysql_fetch_array($search_q))
{
$name = $result['pname'];
echo "<input type='button' name='resultname' id='$productid' value='$name' onclick='throwval(this)'><br/>";
}
}
send_data.php
<?php
$url = $_SERVER['REQUEST_URI'];
$exploded = explode('|',$url,-1);
$number = count($exploded);
?>
<html>
<body>
<table align="center" border="1">
<form method="post" action="send_data.php">
<tr>
<td>Name</td>
<td>Quantity</td>
</tr>
<?php
for($i=1;$i<$number;$i++)
{
$p_name = $exploded[$i];
?>
<tr>
<td><input type="text" name="p_names" value="<?php echo $p_name; ?>" /></td>
<td><input type="text" name="quantity" /></td>
</tr>
<?php
}
?>
<tr>
<td></td>
<td><input type="submit" name="send_request" value="Submit" /></td>
</tr>
</form>
</table>
</body>
</html>
我想发送选定的结果到另一个div从哪里我可以发送选定的值到另一个文件使用PHP或JavaScript(没有jQuery)。 我该怎么做。
更新:我已成功地发送数据从一个到另一个使用appendchild。我现在的问题是,我添加的值被添加为单个字符串。我希望每个值都是独立的,这样我就可以将它发送到一个php(类似购物车)。有任何想法吗? 谢谢
我设法发送单独的值使用javascript通过创建一个新的p属性为每个值被选中。我现在可以在send_data.php中显示值,但我不知道如何通过一个窗体发送for循环生成的多个值。有任何想法吗?
我知道您正在尝试构建搜索表单。用户可以进行多次搜索。用户可以从每个搜索请求中选择一个结果。每个选定的结果存储在某个地方,一旦用户完成搜索和选择,就会发送到另一个php脚本。
我会在HTML中添加一个隐藏字段,并将结果不仅添加到DIV中,而且还添加到隐藏字段的值中。假设用户选择了productId 1,3,5,隐藏字段的值将是“1,2,3”。在PHP中,您可以分解字符串并将每个元素转换为int类型,然后根据需要执行任何操作。
此方法假设用户在完成搜索和选择后单击某种“我完成按钮”,以便您可以将带有隐藏字段的表单提交给服务器。
另一种方法是在用户选择一个值后立即使用Ajax请求将所选值发送回服务器。
感谢您的帮助。我使用爆炸方法来获取多个值。只剩下一个问题 – 2013-04-10 19:19:00
假设您想为$ exploded的每个元素打印一个选择框。添加到for循环: ... $ p_name = $ exploded [$ i]; print“'; ... 注意p_names []构造,这是一个小技巧来定义一个数组所以当用户点击数值为3的复选框和数值为4的复选框时,在提交表单后,p_names将是包含3和4的数组。 – herrjeh42 2013-04-10 23:23:28
我试过这种方法,并将p_names和quantity都更改为p_names []和数量[]分别但是我保持输入类型为文本,然后我用print_r来获取提交的值 现在它工作正常了,谢谢你帮助我 – 2013-04-11 07:13:49
首先,mysql_函数被弃用,看看PDO。并在页面加载后更改div的内容,则需要使用JavaScript。 – void 2013-04-07 19:55:11
检查出http://stackoverflow.com/questions/8567114/how-to-make-an-ajax-call-without-jquery - 是的,请删除mysql_query的东西。 – herrjeh42 2013-04-07 20:41:46
我将不得不查找PDO,一旦我做了我肯定会更新它,但现在我需要发送所需的值到另一个使用javascript,我没有能够做到的div。我尝试使用innerHTML将检索到的值发送到另一个div,但是当我再次搜索时,所选值将消失,并且只有在搜索结果不止一个时才会选择第一个值。我怎样才能做到这一点? @ jamie0726 – 2013-04-08 13:15:24