Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将提取的数据从一个div发送到另一个div_Php_Javascript_Mysql_Ajax - Fatal编程技术网

Php 将提取的数据从一个div发送到另一个div

Php 将提取的数据从一个div发送到另一个div,php,javascript,mysql,ajax,Php,Javascript,Mysql,Ajax,这是使用php和ajax从mysql数据库检索名称的代码 更新代码 index.php <html> <head> <script language="javascript"> function showresult() { var product_name = document.getElementById("searchval").value; if(window.XMLHttpRequest) {

这是使用php和ajax从mysql数据库检索名称的代码

更新代码

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>

函数showresult()
{  
var product_name=document.getElementById(“searchval”).value;
if(window.XMLHttpRequest)
{
XMLHttpRequestObject=新的XMLHttpRequest();
}
else if(window.ActiveXObject)
{
XMLHttpRequestObject=新的ActiveXObject(“Microsoft.XMLHTTP”);
}  
open(“POST”,“search.php”,true);
setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
XMLHttpRequestObject.send(“搜索结果=+产品名称”);
XMLHttpRequestObject.onreadystatechange=函数()
{  
if(XMLHttpRequestObject.readyState==4)
{
if(XMLHttpRequestObject.status==200)
{
document.getElementById(“displayresult”).innerHTML=XMLHttpRequestObject.responseText;
}
}
}  
}
函数throwval(obj)
{
var sent_id=对象id;
var v=document.getElementById(sent_id).value;
var newp=document.createElement(“p”);
var text=document.createTextNode(v);
newp.appendChild(文本);
document.getElementById(“getselected”).appendChild(newp);
}
函数sendvalues()
{
var div_val=document.getElementById(“getselected”);
var str=“|”;
对于(i=0;i
search.php

$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/>";
    }
}
$mysql\u-con=mysql\u-connect(“本地主机”、“根目录”、“根目录”)或die(“无法连接”。mysql\u-error());
$mysql\u db=mysql\u select\u db(“测试”、$mysql\u con)或die(“无法选择db”。mysql\u error());
$keyword=mysql\u real\u escape\u字符串($\u POST['search\u res']);
$search\u q=mysql\u query(“从产品中选择*,其中pname类似“%$keyword%”);
如果(mysql_num_rows($search_q)!=0)
{
而($result=mysql\u fetch\u数组($search\u q))
{
$name=$result['pname'];
回声“
”; } }
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>

名称
量

我知道您正在尝试构建搜索表单。用户可以进行多个搜索。用户可以从每个搜索请求中选择一个结果。每个选择的结果都存储在某个地方,并在用户完成搜索和选择后发送到另一个php脚本

我将向HTML中添加一个隐藏字段,并将结果不仅像您所做的那样附加到DIV中,还附加到隐藏字段的值中。假设用户选择了productId 1,3,5,则隐藏字段的值为“1,2,3”。在PHP中,您可以分解字符串并将每个元素转换为int,然后对其执行任何操作

这种方法假设用户在完成搜索和选择后单击某种类型的“我完成了”按钮,以便您可以向服务器提交带有隐藏字段的表单


另一种方法是,一旦用户选择了值,就使用Ajax请求将所选值发送回服务器

首先,mysql_uu函数被弃用,看看PDO。要在页面加载后更改div的内容,您需要JavaScript.check out-是的,请删除mysql_查询内容。我必须查找PDO,一旦查找,我肯定会更新它,但目前我需要使用JavaScript将所需的值发送到另一个div,而我还无法这样做。我试图使用innerHTML将检索到的值发送到另一个div,但当我再次搜索时,所选值消失,并且仅当搜索结果不止一个时,它才会选择第一个值。我怎样才能做到这一点@Jamie0726所以您需要一个javascript函数来将html附加到现有的html中,在这里寻找灵感:我可以很容易地删除您的数据库,因为您对sql注入持开放态度。查看此参考以了解其工作原理:谢谢您的帮助。我使用explode方法获得多个值。还有一个问题,假设您想为$exploded的每个元素打印一个选择框。添加到for循环:$p_name=$exploded[$i];打印“;…请注意p_名称[]结构,这是在表单中定义数组的一个小技巧。因此,当用户单击值为3的复选框和值为4的复选框时,p_名称在表单提交后将是一个包含3和4的数组。我尝试了这种方法,并将p_名称和数量都更改为p_名称[]和数量[]但是我分别将输入类型保留为文本。然后我使用print\r获取提交的值。现在工作正常。谢谢您的帮助