【问题标题】:Multifunctional button多功能按钮
【发布时间】:2013-07-23 18:48:29
【问题描述】:

我在同时发布文本字段和上传图片时遇到问题,目前我可以上传图片或发布文本字段。如何使用一个按钮同时发布所有内容?

$photo_form  = '<form id="photo_form" enctype="multipart/form-data" method="post" action="php_parsers/status_system.php">';
$photo_form .=   '<select name="gallery" required>';
$photo_form .=     '<option value="Cover">Cover</option>';
$photo_form .=   '</select>';
$photo_form .=   ' &nbsp; &nbsp; &nbsp; <b>Browse:</b> ';
$photo_form .=   '<input type="file" name="photo" accept="image/*" required>';
$photo_form .=   '<p><input type="submit" value="Upload"></p>';
$photo_form .= '</form>';

$status_ui = "";
$status_ui = '<div><textarea id="statustext" onkeyup="statusMax(this,500)" placeholder="Description field"></textarea>';
$status_ui .= $photo_form;
$status_ui .= '<textarea id="statustext2" onkeyup="statusMax(this,200)" placeholder="Description field 2."></textarea></div>';
$status_ui .= '<button id="statusBtn" onclick="postToStatus(\'status_post\',\'a\',\''.$u.'\',\'statustext\',\'statustext2\')">Post</button>';

致马克西姆斯2012

$status_ui  = "";
$status_ui .= '<div><textarea id="statustext" name="statustext" onkeyup="statusMax(this,500)"   placeholder="Description field"></textarea>';
$status_ui .= '<textarea id="statustext2" name="statustext2" onkeyup="statusMax(this,200)" placeholder="Description field 2."></textarea></div>';

$photo_form  = '<form id="photo_form" enctype="multipart/form-data" method="post"     action="php_parsers/status_system.php">';
$photo_form .=   '<select name="gallery" required>';
$photo_form .=     '<option value="Cover">Cover</option>';
$photo_form .=   '</select>';
$photo_form .=   ' &nbsp; &nbsp; &nbsp; <b>Browse:</b> ';
$photo_form .=   '<input type="file" name="photo" accept="image/*" required>';
$photo_form .=   $status_ui ;
$photo_form .=   '<p><input type="submit" value="Upload"></p>';
$photo_form .= '</form>';

echo $photo_form ;

我仍然只能使用此代码上传图片,但是当我使用时

$photo_form .= '<p><button id="statusBtn" onclick="postToStatus(\'status_post\',\'a\',\''.$u.'\',\'statustext\',\'statustext2\')">Post</button></p>';

而不是

$photo_form .= '<p><input type="submit" value="Upload"></p>';

所有内容都已处理,但文本部分插入一行,图像插入另一行。

这是我的 postToStatus 函数:

function postToStatus(action,type,user,ta,te){
var data = _(ta).value;
var data2= _(te).value;
if(data == "" && data2 == ""){
alert("Please fill in all fields");
return false;
}

我对我的图像解析脚本进行了一些调整,因此文本和图像被放置在同一行中,因为图像是在文本之后上传的,而不是将文件名插入新行脚本现在更新该用户在其上创建的最后一行轮廓。 现在,如果任何字段为空白,我只需要阻止发布表单。

$sql = "UPDATE status SET filename = '$db_file_name' WHERE author = '$log_username' && account_name = '$log_username' ORDER BY id DESC LIMIT 1";

【问题讨论】:

  • 您的文本字段和图片字段不是同一表单的一部分。这似乎是这里的问题。
  • 能否贴出postToStatus函数的代码。我认为您正在尝试使用 JavaScript 来实现,而我提出的解决方案是纯 PHP/HTML 解决方案。

标签: php mysql


【解决方案1】:

您的文本字段和图片字段不是同一表单的一部分。 看看这是否有效:

$status_ui  = "";
$status_ui .= '<div><textarea id="statustext" name="statustext" onkeyup="statusMax(this,500)"   placeholder="Description field"></textarea>';
$status_ui .= '<textarea id="statustext2" name="statustext2" onkeyup="statusMax(this,200)" placeholder="Description field 2."></textarea></div>';

$photo_form  = '<form id="photo_form" enctype="multipart/form-data" method="post"     action="php_parsers/status_system.php">';
$photo_form .=   '<select name="gallery" required>';
$photo_form .=     '<option value="Cover">Cover</option>';
$photo_form .=   '</select>';
$photo_form .=   ' &nbsp; &nbsp; &nbsp; <b>Browse:</b> ';
$photo_form .=   '<input type="file" name="photo" accept="image/*" required>';
$photo_form .=   $status_ui ;
$photo_form .=   '<p><input type="submit" value="Upload"></p>';
$photo_form .= '</form>';

echo $photo_form ;

【讨论】:

  • 这如何回答这个问题?文本区域仍然不在表单元素中。
  • 我只是上传图片。
  • 你能试试更新的代码吗?您的原始代码没有 2 个 textarea 字段的名称属性。它只有他们的 ID。
  • 还是只上传图片。
  • 不,我对代码进行了更改,您可以尝试答案中的当前代码吗?您是否还可以使用您尝试的代码更新您的答案,以确保我们在同一页面上?
【解决方案2】:

这里有两个选项。首先是在同一个表格中包含您想要的所有信息。这意味着该表单中的任何字段都将被“提交”。

这看起来像(只是结合 $photo_form$status_ui:

$photo_form  = '<form id="photo_form" enctype="multipart/form-data" method="post"     action="php_parsers/status_system.php">';
$photo_form .=   '<select name="gallery" required>';
$photo_form .=     '<option value="Cover">Cover</option>';
$photo_form .=   '</select>';
$photo_form .=   ' &nbsp; &nbsp; &nbsp; <b>Browse:</b> ';
$photo_form .=   '<input type="file" name="photo" accept="image/*" required>';
$photo_form .=   '<textarea id="statustext" onkeyup="statusMax(this,500)"   placeholder="Description field"></textarea>';
$photo_form .=   '<textarea id="statustext2" onkeyup="statusMax(this,200)" placeholder="Description field 2."></textarea>';
$photo_form .=   '<p><input type="submit" value="Upload"></p>';
$photo_form .= '</form>';

但是,此选项将绕过之前与 statusBtn 一起发生的postToStatus()

您拥有的另一个选项(仍然允许调用postToStatus())是通过您的javascript 来完成。您可以在 postToStatus 函数进行 AJAX/POST/GET 调用之前使用 javascript 在其他表单中获取图像。

【讨论】:

  • 是的,我的 javascript 代码似乎没有运行,所以文本字段没有发送进来,当我按下上传时甚至可以是空的。
猜你喜欢
  • 2016-07-04
  • 1970-01-01
  • 1970-01-01
  • 2015-02-23
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
相关资源
最近更新 更多